Tôi đã hai ứng dụng nút/dịch vụ đang chạy với nhau, 1. ứng dụng chính 2. ứng dụng thứ haiLàm thế nào để tiêm mô-đun từ ứng dụng khác nhau trong Node.js
Các ứng dụng chính là trách nhiệm để hiển thị tất cả các dữ liệu từ các ứng dụng khác nhau ở cuối. Bây giờ tôi đặt một số mã của ứng dụng thứ hai trong ứng dụng chính và bây giờ nó đang hoạt động, nhưng tôi muốn nó được tách riêng. Tôi có nghĩa là mã của ứng dụng secnod sẽ không có trong ứng dụng chính (bằng cách nào đó để tiêm nó vào thời gian chạy)
như dịch vụ thứ hai được đăng ký vào ứng dụng chính trong việc tiêm mã của nó. mã của nó chỉ là hai mô-đun, là nó có thể làm điều đó trong 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);
}
Trong mô-đun chính, tôi đặt mã này và tôi muốn tách nó bằng cách tiêm nó bằng cách nào đó trên thời gian chạy? ví dụ sẽ rất hữu ích ...
Tại sao không xuất ứng dụng thứ hai làm mô-đun, bạn có thể nhập ứng dụng thứ hai vào ứng dụng chính của mình. – Xlee
_ "bằng cách nào đó để tiêm nó vào thời gian chạy" _. Nó được gọi là 'require()'. – robertklep
Bạn có thể làm rõ lý do của bạn cho việc này không? Như đã đề cập trong một số câu trả lời tách là cách để thực hiện điều này. Trừ khi bạn có một lý do mạnh mẽ để làm điều này, tôi sẽ nói bạn nên đi với một thứ gì đó được tách rời - dịch vụ vi mô, pub/sub, hàng đợi công việc hoặc thậm chí chỉ ghi lại dữ liệu để tiêu thụ bởi một phóng viên. – Brian