上一篇文章描述了一下基本的node服务配置安装,下面对一个node javascript服务进行分解,并分析。
首先说一下,上篇文章中安装的node,是一个javascript服务器运行环境。其封装了javascript写的包.node没有监听服务器端口,而实际是通过
,建立一个server.js监听文件,用node进行运行,监听对应的端口,并执行相关操作。
然后说一下,上次运行的代码:
var http = require("http");//引入http请求模块,以后还会有url模块等
http.createServer(function(request, response)
{ response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World"); response.end();
}).listen(9999);//将句柄进行端口9999监听,并执行匿名函数,函数的参数为request和response
转换一下:
var http = require("http");
function listen(request.response){
response.writeHead(200,{"Content-Type":"text/plain"});//函数发送一个HTTP状态200和HTTP头的内容类型(content-type),
response.write("Hello World");//使用 response.write() 函数在HTTP相应主体中发送文本“Hello World"。
response.end();
}
http.createServer(listen).listen(9999);//创建监听服务,以及监听处理函数
当运行node server.js后,node主动监听9999端口,当请求来时,则会调用listen函数。这里可以将我们server.js理解为一个等待请求服务的程
序。
如何将server.js 当做一个模块去引入,就像php引入公共文件一样呢?
将上面的代码封装到一个函数
var http = require("http");
function servername(){
function listen(request.response){
response.writeHead(200,{"Content-Type":"text/plain"});//函数发送一个HTTP状态200和HTTP头的内容类型( content-type),
response.write("Hello World");//使用 response.write() 函数在HTTP相应主体中发送文本“Hello World"。
response.write("server Caller");
response.end();
}
http.createServer(listen).listen(9999);//创建监听服务,以及监听处理函数
}
exports.start = servername;//对外接口为servername函数
在同级文件夹 建立一个index.js文件,内容为:
var server = require("./server")
server.start();
保存index.js文件
然后运行 node index.js 这时候你再次访问9999端口,你也会看到helloworld,并且看到是server Caller.
这就是基本的node运行,并且通过js文件来定义自定义的服务模块。
更多信息请查看IT技术专栏