Javascript 如何要求一个模块在另一个模块中使用事件发射器?
我有一个像这样的express server文件Javascript 如何要求一个模块在另一个模块中使用事件发射器?,javascript,node.js,server,eventemitter,Javascript,Node.js,Server,Eventemitter,我有一个像这样的express server文件 const express = require('express') const app = express() app.get('/', (req, res) => res.send('Hello World!')) app.listen(3000, () => console.log('Example app listening on port 3000!') 我有一个文件,用于为tcpServer运行不同的端口 const
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Example app listening on port 3000!')
我有一个文件,用于为tcpServer运行不同的端口
const net = require('net');
const lora_packet = require('lora-packet');
const dataParser = require('./dataParser');
const clients = [];
net.createServer(function(socket) {
socket.name = socket.remoteAddress + ":" + socket.remotePort;
clients.push(socket);
socket.on('data', function(data) {
try {
console.log("Buffer sent by terminal : ");
}catch(err){
console.log("DATA RECEIVING PRODUCED AN ERROR" + err);
}
});
socket.on('end', function() {
clients.splice(clients.indexOf(socket), 1);
//broadcast(socket.name + "has left the cartel.\n");
});
socket.on('error', function (exc) {
console.log("ignoring exception: " + exc);
});
}).listen(8080);
我想在这两个模块中使用事件发射器,将其中一个服务器中的更改通知给另一个服务器。但我面临的问题是,要发出一个事件,我必须需要另一个模块,它不会创建循环依赖关系吗?我应该如何处理这个问题?循环依赖关系是否有问题,或者可以在node.js服务器中使用
是否可以围绕循环依赖性开展工作以实现目标?虽然Node.JS有几种处理循环依赖性的方法,但动态需求通常不是一个好主意-它会造成许多不可预测的情况。最好是需要你所需要的所有模块,然后在发射器中使用它们。如果你仔细做了,你可以使用圆形DeP。但是考虑创建一个第三个模块,在你的2个服务器之间充当你的单个事件发射器。“如果仔细做”你能详细说明这个吗?我相信DOCs会比我好很多: