Node.js模块正确的使用
当我使用模块时,我想确保遵循正常的惯例。
我通常写代码,如果我不做出口,然后用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) { ... } ... }
在你的例子中,它看起来像你正在导出一个单一的function,看起来像一个快递服务器。 由于代码片段中的模块不会导出任何内容,因此不需要包装函数。 通常你会看到运行express服务器的server.js
types文件作为没有提及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
configuration在底部,只是纯粹的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;
这是相当的,在我看来,整洁一点。