簡體   English   中英

將變量傳遞到正在運行的node.js程序中

[英]Pass variable into a running node.js program

我有一個在后台服務器上運行的進程。 像這樣導出對象

module.exports = new Application()

因為我只希望對象的一個​​實例永遠存在。

然后,我有一個單獨的過程,該過程試圖調用Application的原型函數process 看起來像這樣

var app = require('./Application.js');

app.process(process.argv[2]);

並說該文件名為process.js 然后,我將調用node process.js thing_to_pass

問題是,每次執行此操作時,它都會重新實例化application ,從而導致出現我所不希望的行為。

我該如何解決? 我當時正在考慮使用socket.io在兩個進程之間進行通信,但這似乎有點駭人聽聞。

您將無法繼續嘗試下去。 因為您有兩個不同的過程,所以您將創建兩個不同的Application實例。 通過socket.io將消息從一個進程發送到另一個進程並不是那種討厭的imo,絕對是要考慮的事情。

您還可以考慮使用child_process並通過kill http://nodejs.org/api/process.html發送消息

如果您使用的是Linux,則建議使用UNIX域套接字。

如果要運行的進程接收新數據,則它必須以某種方式偵聽該數據。 無論是設置HTTP服務器並接受和處理帶有新數據或socket.io的請求,還是等待命令行中的信息,監視文件中的更改或發現了什么。

如果啟動一個完整的單獨進程,則該進程將在邏輯上與當前正在運行的進程分開,並且謝天謝地,否則,完全獨立的應用程序可能會以意想不到的方式相互干擾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM