Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何要求一个模块在另一个模块中使用事件发射器?_Javascript_Node.js_Server_Eventemitter - Fatal编程技术网

Javascript 如何要求一个模块在另一个模块中使用事件发射器?

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

我有一个像这样的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 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会比我好很多: