Node.js:require()并传递variables

用npm开始一个项目,创build了一个特定的文件结构:

www < – require()调用app.js; 实例化服务器

app.js < – 实例化var app = express(); 并有module.exports =应用程序;

现在,我想使用sockets.io。 在我的'www'文件中,这是一个代码片段:

var app = require('../app'); ... var server = http.createServer(app);

我想把我所有的服务器端套接字侦听器放在app.js中,但是下面的代码:

var io = require('socket.io').listen(server);

需要服务器作为input。 如何让我在'www'中实例化的服务器可以在'app.js'中访问?

这似乎有点奇怪。 但是,如果你坚持这样的结构,你可以从www中导出一个对象,将它作为属性,并绑定套接字侦听器的方法将接收app对象作为参数。

 module.exports = { app: app, bindSocketListeners: function(server, io) { io.listen(server); return io; } }; 

并称之为:

 var appObj = require('../app'); var io = require('socket.io'); var app = appObj.app; var server = http.createServer(app); io = appObj.bindSocketListeners(server, io)