1 构建服务器模块
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."); // var content = route(pathname,handle); var content = route(pathname,handle,response); /* response.writeHead(200, {"Content-Type": "text/plain"}); response.write(content); response.end(); */ } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start;
http跟url都是nodejs的模块,可以使用require方法将其导入到当前所在模块的作用域中。
exports将本模块中的方法导出,相当于java中接口暴露给外部调用的共有方法。
2 构建主启动模块
var server = require('./server');//导入上面构建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模块的启动方法启动服务器
hander对象存放每个请求的url所对应的请求处理器方法,其余参照注释
3 其他模块的构建方法类似
主要用到require将其他模块导入本模块,exports导出模块共有方法。