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)