创建一个叫做requestHandlers的模块,并对于每一个请求处理程序,添加一个占位用函数,随后将这些函数作为模块的方法导出
equestHandlers.js
function start(){
console.log("Request handler'start' was called");
}
function upload(){
console.log("Request handler'upload' was called");
}
exports.start=start;
exports.upload=upload;
index.js
var server = require("./server");
var router=require("./router");
var requestHandlers=require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route,handle);
server.js
var http = require("http");
var url=require("url");
function start(route,handle) {
function onRequest(request, response) {
var pathname=url.parse(request.url).pathname;
console.log("Request for"+pathname+"received.");
route(handle,pathname);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("this is a demo");
response.end();
}
http.createServer(onRequest).listen(5656,'127.0.0.1');
console.log("Server has started. localhost:5656");
}
exports.start = start;
router.js
function route(handle,pathname){
console.log("About to route a request for"+pathname);
if(typeof handle[pathname]=='function'){
handle[pathname]();
}
else{
console.log("no request handler found for"+pathname);
}
}
exports.route=route;
启动:
浏览器输入http://localhost:5656/
结果:
浏览器输入http://localhost:5656/start
结果:
浏览器输入http://localhost:5656/upload
结果:
结果