我正在尝试将我的 socket.io 代码与我的主文件(app.js)分开到一个单独的文件(socket.js)中。但是,我需要在 app.js 中定义我的 io 对象,该对象也在我的 socket.js 文件中使用。
目前,我将 io 设置为全局变量,因此可以从 app.js 访问它( app.js中的全局变量可在路由中访问?),但我知道这是不好的做法。有没有更好的方法来做到这一点(在这种情况下注入可以工作,因为我需要将变量从 app.js 导出到 socket.js 而不是相反)?谢谢!
应用程序.js
var app = express(),
server = require('http').createServer(app);
//KIV -> io is set as a global variable
io = require('socket.io').listen(server);
require('./socket');
socket.js
io.sockets.on('connection', function(socket) {
//xxx
}