的模块分析首先简单对比一下php和nodejs的区别。带有mod_php5模块和php-cgi的HTTP服务器。从这个角度来看,整个“接收HTTP请求并提供网页”的需求根本不需要PHP来处理。但是对于Node.js来说,概念就完全不同了。使用Node.js时,我们不仅仅是在实现一个应用程序,而是在实现一个完整的HTTP服务器。比如写php,我们只需要处理逻辑即可。当php执行遇到错误时,浏览器会抛出错误。但是在写nodejs的时候,你会发现一个神奇的现象:nodejs一处代码出错,程序直接崩溃,浏览器直接500!!该程序没有很好地处理输出,它只是挂在那里!!这是最常见的现象,因为nodejs不依赖web服务器,它自己处理请求和响应1.解析hollowworldvarhttp=require('http');http.createServer(function(request,response){response.writeHead(200,{'Content-Type':'text/plain'});response.end('HelloWorld\n');}).listen(8080);console.log('服务器运行在http//127.0.0.1:8080/');代码中的createServer是一个快捷方式,恢复后是这样的:varhttp=require("http");varserver=newhttp.Server();server.on("request",function(req,res){res.writeHead(200,{"content-type":"text/plain"});res.write("helloWorld\n");res.end();});server.听(8080);http模块封装了一个Http服务器和一个Http客户端,分别对应http.Server()和http.request()。前者的作用是创建http服务器,后者的作用是向http服务器发起请求,所以createServer方法就是实例化一个http.Server()服务器,监听请求事件,并然后发送回复。同时监听8080端口2.http.Serverhttp.Server是一个基于事件的服务器(事件驱动就是这个意思),常用的监听事件有request:监听客户端请求,在回调函数中返回两个参数,req和res,分别代表请求和响应连接:监听TCP连接建立,回调函数中返回参数socketclose:监听服务器关闭。我们通常使用request事件,socket编程一般使用socket.io。还有一个关键参数就是请求事件回调函数的res,负责响应客户端。如果response没有用res处理,就会出现开头说的现象,请求会挂掉。介绍它的三个成员函数:res.writeHead(statusCode,[heasers]):发送客户端响应头res.write(data,[encoding]):发送客户端响应体(内容),可以多次调用。end():结束响应,否则请求会挂起
