在Nodejs中,組織好代碼可以讓你的項(xiàng)目更具可讀性;有效并合理的使用模塊,你的代碼會(huì)更加的高大上的;
為了更好的理解如何創(chuàng)建自己的模塊,我們會(huì)實(shí)現(xiàn)一個(gè)最簡單的HTTP服務(wù)器功能,然后把這個(gè)功能打包成一個(gè)模塊并調(diào)用。
1.首先,實(shí)現(xiàn)一個(gè)服務(wù)器功能
在根目錄新建一個(gè) server.js 文件:
var http = require('http');
http.createServer(function(req,res){
res.writeHead(200,{"Content-Type":"text/plain"});
res.write("Hello World");
res.end();
}).listen(8888);
我們已經(jīng)實(shí)現(xiàn)了一個(gè)服務(wù)器了,運(yùn)行node server.js后,訪問localhost:8888即可得到Hello World的響應(yīng)。
2.‘打包’
接下來我們把上面實(shí)現(xiàn)的服務(wù)器‘打包’成一個(gè)模塊,這段代碼的主要作用就是啟動(dòng)一個(gè)HTTP服務(wù)器,如果想把它打包成一個(gè)模塊的話,這個(gè)模塊對(duì)外暴露的功能也只有一個(gè):啟動(dòng)HTTP服務(wù)器;
為了暴露這個(gè)功能,我們把啟動(dòng)服務(wù)器的腳本放到一個(gè)函數(shù)里:
var http = require('http');
function start(){
http.createServer(function(req,res){
res.writeHead(200,{"Content-Type":"text/plain"});
res.write("Hello World");
res.end();
}).listen(8888);
}
exports.start = start;
這樣的話,我們就通過exports.start = start把啟動(dòng)服務(wù)器的功能暴露出來了。
3.調(diào)用模塊
接下來,同樣在根目錄新建一個(gè)index.js腳本文件并實(shí)現(xiàn)調(diào)用模塊:
var server = require('./server');
server.start();
沒錯(cuò),就像我們調(diào)用http模塊一樣,我們也可以通過相同的方式來調(diào)用我們自己的模塊了。請(qǐng)求這個(gè)文件并指向一個(gè)變量(server),這樣其中暴露的函數(shù)就可以調(diào)用了(server.start());
4.試一下
現(xiàn)在我們已經(jīng)可以通過index.js來啟動(dòng)我們的服務(wù)器了:
node index.js
訪問localhost:8888,我們同樣可以得到Hello World的響應(yīng)結(jié)果!