Mam dwie aplikacje node/usługi, które są uruchomione razem 1. Głównym aplikacji 2. Druga aplikacjaJak wstrzykiwać moduł z różnych aplikacji w node.js
Głównym aplikacja jest odpowiedzialny, aby pokazać wszystko dane z różnych aplikacji na końcu. Teraz umieściłem kod drugiej aplikacji w głównej aplikacji, a teraz działa, ale chcę, aby była odłączona. Chodzi mi o to, że kod aplikacji secnod nie będzie w głównej aplikacji (w jakiś sposób, aby wstrzyknąć go w czasie wykonywania).
podobnie jak druga usługa jest zarejestrowana w głównej aplikacji, wstrzyknąć jej kod. kod to tylko dwa moduły, czy można to zrobić w nodejs?
const Socket = require('socket.io-client');
const client = require("./config.json");
module.exports = (serviceRegistry, wsSocket) =>{
var ws = null;
var consumer =() => {
var registration = serviceRegistry.get("tweets");
console.log("Service: " + registration);
//Check if service is online
if (registration === null) {
if (ws != null) {
ws.close();
ws = null;
console.log("Closed websocket");
}
return
}
var clientName = `ws://localhost:${registration.port}/`
if (client.hosted) {
clientName = `ws://${client.client}/`;
}
//Create a websocket to communicate with the client
if (ws == null) {
console.log("Created");
ws = Socket(clientName, {
reconnect: false
});
ws.on('connect',() => {
console.log("second service is connected");
});
ws.on('tweet', function (data) {
wsSocket.emit('tweet', data);
});
ws.on('disconnect',() => {
console.log("Disconnected from blog-twitter")
});
ws.on('error', (err) => {
console.log("Error connecting socket: " + err);
});
}
}
//Check service availability
setInterval(consumer, 20 * 1000);
}
W głównym module umieściłem ten kod i chcę go odłączyć przez wstrzyknięcie go w jakiś sposób w czasie wykonywania? przykład będzie bardzo pomocny ...
Dlaczego nie eksportować swoją drugą aplikację jako moduł, a następnie u można importować go w głównej aplikacji. – Xlee
_ "jakoś wstrzyknąć to w czasie wykonywania" _. To się nazywa 'require()'. – robertklep
Czy możesz wyjaśnić powody, dla których tego chcesz? Jak wspomniano w niektórych odpowiedziach, odsprzężenie jest drogą do osiągnięcia tego. Jeśli nie masz silnego powodu, aby chcieć to zrobić, powiedziałbym, że lepiej jest zabrać się za coś oderwanego - mikro-usługi, pub/sub, kolejka zadań, a nawet po prostu rejestrowanie danych do spożycia przez reportera. – Brian