nodejs 学习笔记---非阻塞请求响应


 ==================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文件

//get http mode
var http=require("http");
var url=require("url");


function start(route,handle){
http.createServer(function(request,response) {


 var pathname=url.parse(request.url).pathname;
       console.log("Request for "+pathname+" received!");
 route(handle,pathname,response);
        // 8080 is listening
        }).listen(8080);


       console.log("Server has started.");
}
exports.start=start;
 =========================================== ===========================================



 ============requestHandler.js文件 =============== 

var exec=require("child_process").exec;
function start(response){
console.log("===start()===");
//var content="empty";
//exec("ls=lah",function (error,stdout,stderr){
  //content=stdout;
       
        //});
//return content;
exec("find /", 
               { timeout: 10000, maxBuffer: 20000*1024 }, 
               function (error, stdout, stderr) { 
                      response.writeHead(200, {"Content-Type": "text/plain"}); 
                      response.write(stdout); 
                      response.end(); 
      }); 

//阻塞等待10秒后返回
// function sleep(millliSeconds){
// var startTime=new Date().getTime();
// while(new Date().getTime()<startTime+millliSeconds);
// }
// sleep(10000);
// return "hello start!";
}
function upload(response){
console.log("===upload()===");
response.writeHead(200,{"Content=type":"text/plain"});
      response.write("hello upload!");
response.end();
}
exports.start=start;
exports.upload=upload;

 =========================================== ===========================================

 ===============router.js文件 =============== 

function route(handle,pathname,response){
console.log("About to route a request for "+pathname);
if(typeof handle[pathname]=='function'){
 handle[pathname](response);
}else{
console.log("no request handler found for "+pathname);
                response.writeHead(404,{"Content=type":"text/plain"});
          response.write("404 Not found!");
       response.end();

}
}
exports.route=route;

  =========================================== ===========================================


posted @ 2012-09-11 13:42  retacn_yue  阅读(427)  评论(0编辑  收藏  举报