上一篇文章描述了一下基本的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技術專欄