繁体   English   中英

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

[英]How to require one module in the other for using event emitters?

我有一个这样的快递服务器文件

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有几种处理循环依赖关系的方法,但是动态需求通常不是一个好主意-它可能会导致许多不可预测的情况。 最好需要所有需要的模块,然后在发射器中使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM