您的位置:首页 > Web前端 > Node.js

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

2012-09-11 13:42 591 查看
==================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;

=========================================== ===========================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: