如何用node.js写一个比较复杂的web服务器
2017-05-22 · 专业短信验证码、公众号开发推广
用node.js创建web服务器,包括返回文件、缓存判断、处理请求、服务器配置等
web服务器包括三块:app.js是程序入口,负责响应url请求;route.js是路由,分发处理复杂的业务逻辑;system.js是配置文件,配置服务器参数。
app.js,引用模块,http处理url请求,url解析请求参数和路径,path匹配路径的扩展名,fs读取本地静态文件。
创建服务器处理请求,请求大致分两类,一类是静态文件,如xxx.html、xxx.js等等,另一类是进行业务处理,如常见的增删查改操作,这一部分操作交给路由处理,这里用了一个简单的判断逻辑:通过后缀名,后缀名在system.js中配置。
读取本地文件的时候要注意一点,那就是缓存。如果客户端发出重复请求,服务器需要判断文件自上次请求后是否发生了修改,如果未修改返回304,这样可以加快浏览器端的响应速度。这里的判断方式是通过判断请求的header的if-modified-since时间和本地文件修改时间是否一致,如果一致则返回304,否则重置该时间。
如果需要进行业务处理,则交给路由处理了。首先路由引入具体的业务逻辑模块,然后通过解析具体的路径名来执行具体的业务逻辑,这里注意的是:由于node.js的并发特性,记得传入回调函数来获得相应的处理结果。
最后看一下服务器配置文件和启动后的效果。