【发布时间】:2023-03-16 05:53:02
【问题描述】:
我正在使用 socket.io 和 Express 4,我在将 io 传递给其他模块时遇到问题。
在我的 app.js 中,我将 io 附加到应用程序,如下所示:
var express = require('express');
var socket_io = require('socket.io');
var app = express();
app.io = socket_io();
module.exports = app;
我的服务器定义在 ./bin/www 而不是 app.js 中,io 像这样附加到服务器:
./bin/www:
var app = require('../app');
var http = require('http');
server.listen(3000);
app.io.attach(server);
在我的模块中,我尝试导入app 以访问app.io,但我可能遇到循环依赖问题,因为app 是一个空对象。
module.js
var app = require('../app');
console.log(app)
--> {}
我尝试了this 和this 问题中建议的解决方案,但它们不起作用。我怀疑我在 ./bin/www 中创建服务器的事实可能是原因。
如何在其他模块中访问app?
【问题讨论】:
标签: javascript node.js express socket.io