假设我有两个文件。
server.js
test.js
server.js包含所有初始化代码(Mongoose,Express..etc)。它还具有以下代码:
const io = require('socket.io')(server);
在我的test.js文件中,我有一些与mqtt相关的东西。无关紧要,但是请理解,我那里没有任何变量访问权限(req,app)。因为该文件不是路由或其他任何内容。
在server.js中包含为:
require('test.js');
我没有讨论MQTT的任何细节或其工作方式。考虑一下test.js中的一个或多个函数在特定时间运行。因此,一旦发生这种情况,我如何使用test.js文件中的socket.io发出事件?
我的客户端仪表板已准备好接收事件。我只是很困惑如何设计系统,尤其是如何访问io
文件中存在的server.js
变量。
答案 0 :(得分:1)
如前所述,只是从test.js中导出一个以io
作为参数的函数:
module.exports = function test(io) {
io.on("connection", socket => {
socket.emit("greeting", "hello world!");
});
};
只需从server.js中传递参数:
require("./test.js")(io);