var http=require("http");
var url=require("url");
var onRequest=function(request,response){
var pathname=url.parse(request.url).pathname;
if (pathname=="/"||pathname=="/start"){
response.writeHead(200,{"content-Type":"text/plain"});
response.write("hello world");
response.end();
}else if (pathname=="/upload"){
response.writeHead(200,{"content-Type":"text/plain"});
response.write("hello upload");
response.end();
}else{
console.log("the response for "+pathname+"is not found")
};
console.log("Server running at http://localhost:8888")
}
http.createServer(onRequest).listen(8888);
?
?
模块化后:
//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;
route(handle,pathname,response);
}
var server=http.createServer(onRequest);
server.on(‘listening‘,function(){
? ?console.log(‘ok, server is running‘);
});
server.listen(50);
console.log("Server running at http://localhost:50")
}
exports.start=start;
?
//router.js
function route(handle,pathname,response){
if (typeof handle[pathname] == ‘function‘ ){
handle[pathname](response);
}else{
console.log("No request handle found for"+pathname);
response.writeHead(404,{"content-Type":"text/plain"});
response.end();
}
};
exports.route=route;
?
//requestHandler.js
function start(response){
response.writeHead(200,{"content-Type":"text/plain"});
response.write("hello world111");
response.end();
};
function upload(response){
response.writeHead(200,{"content-Type":"text/plain"});
response.write("hello upload1111");
response.end();
};
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)
原文:http://schifred.iteye.com/blog/2258275