为了对不同请做出不同的反馈,我们引入一个事件处理器的模块。
该模块命名为 requestHandlers,我们先添加start() 和 upload()两个占位函数。
requestHandlers.js 代码如下:
代码如下:
调用这个。");
}
function upload() {
console.log("访问/upload时调用这个。");
}
exports.start = start;
exports.upload = upload;
在真实的应用中,请求处理程序的数量会不断增加,我们当然不想每次有一个新的URL或请求处理程序时,都要为了在路由里完成请求
到处理程序的映射而反复折腾。
除此之外,我们也不想在在路由里有一大堆if request == x then call handler y,这样会让代码看起来 很杂乱、很不专业的感觉。
这里我将使用关联数组的概念来处理这个需求,我们将一系列请求处理程序通过一个对象来传递,并且需要使用松耦合的方式将这个对象注入到route()函数中。
我们先将这个对象引入到主文件index.js中:
代码如下:
var handle = {};
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route,handle);
比如我想加一个/show的映射,直接添加一句 handle["/show"] requestHandlers.show;就可以了;
哈哈,这样一来代码是不是简洁有秩序多了?!
接下来我们将handle对象传给服务器,server.js修改如下:
代码如下: