Ich habe einen Express-Server-Datei wie dieseWie benötigt man ein Modul in der anderen für die Verwendung von Ereignisemittern?
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!')
Und ich habe eine Datei für einen anderen Port für einen
tcpserver laufenconst 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);
I Ereignis-Emitter in beiden Module verwenden möchten die benachrichtigen Änderungen in einem der Server auf den anderen. Aber das Problem, dem ich gegenüberstehe, ist, dass ich ein anderes Ereignis ausgeben muss, um ein Ereignis auszulösen, und würde es keine zirkuläre Abhängigkeit erzeugen? Wie soll ich dieses Problem angehen? Ist die zirkuläre Abhängigkeit problematisch oder kann sie in Ihren node.js-Servern verwendet werden?
Kann es eine Arbeit um die zirkuläre Abhängigkeit geben, um das Ziel zu erreichen oder nicht?
Wenn Sie vorsichtig vorgehen, können Sie zirkuläre dep verwenden. Aber denken Sie darüber nach, ein drittes Modul zu erstellen, das als einzelner Ereignissender zwischen Ihren 2 Servern fungiert. –
"Wenn sorgfältig gemacht" Können Sie dies näher ausführen? –
Ich glaube, die Dokumente werden viel besser als ich :) https://nodejs.org/api/modules.html#modules_cycles –