[英]Node.js Module Correct Usage
當我使用模塊時,我想確保遵循正常約定。
我編寫的代碼通常就像我沒有進行導出一樣,然后我用module.exports {...}包裝整個文件; 。
它有效,但我只是想確保我沒有做一些讓我被解雇的事情。 感覺太簡單了,難以理解......我在想它嗎?
module.exports=function() {
var express=require('express');
var app=express();
app.use(express.static(__dirname+'/root'));
var clientCount=0, currentid=0;
var players=new Array();
app.get('/login/*', function(request, response) {
...
}
...
}
在您的示例中,您看起來像是在導出單個函數,它看起來像一個快速服務器。 由於您的代碼段中的該模塊不會導出任何內容,因此不需要包裝函數。 通常,您將看到運行快速服務器的server.js
類型文件作為主要入口點程序,但沒有提及module.exports
。 它們只有運行node server.js
時執行的頂級代碼,這很好。
如果由於某種原因你希望能夠有一個單獨的模塊需要這個模塊並通過函數調用啟動它,如:
var server = require('./server');
server(); //call the function to start the express server
那么你所擁有的是好的,但是我試着保持我的源代碼部分與CommonJS擴展密切相關,我認為隨着ECMAScript 6的采用,它將不再受歡迎,僅限於module.exports
頂部的隔離require
語句module.exports
在文件中間module.exports
底部的配置和純JavaScript(沒有CommonJS的東西)。 我更喜歡這種模式:
//CommonJS require statements
var express = require('express')();
//main module body code. Pure JS. No CommonJS pollution.
function setup() {
...
}
//CommonJS exports stuff
module.exports = setup;
它是等價的,在我看來只是有點整潔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.