框架的构思

开发一个WEB服务器框架,首先要解决的是扩展性问题。扩展性顾名思义,就是通过插件或中间件的形式,扩展其功能。扩展性就是让框架支持中间件的插件形式。而实现这个构思就需要一套策略,也就是要明白用什么原理实现。

(小帅哥问:框架实现的方式都是一样的吗,还是有很多实现方式?)

实现的方式很多,每个人都可能不同,在这里采用的是中间件的形式,通过这种实现方式,可以学到很多开发经验和技巧。在此之前先模仿,然后超越。

构思

通过中间件的形式,为框架添加功能,那就要在执行主逻辑代码之前执行中间件,中间件应该具有顺序性。WEB服务器的request事件的触发,表示有客户访问服务器资源。那么,我们知道服务器主逻辑,就是为了响应request事件的。

前两天的代码中,我们把主逻辑放在 handle 函数中,也就是说在handle上做文章,也许就能实现这种构思。

下面是构思的伪代码:

function handle(req,res){
     middle1(req,res);
     middle2(req,res);
     middle3(req,res);
     主逻辑代码
}
server.on("request",handle);

真实的实现不会这么写,但这样会更直观清晰。构思明确后,接下来就要实现。下一节,我们将实现这种构思。