2015-11-12 76 views
-3

我是新來的node.js,我要代替我做了一個應用程序在C#中使用的是Node.js,但節點的異步性質是扔我送行:如何實現這個邏輯與節點JS

我會想做到這一點:

1- Read N files, parse them and fill an array with the values from the files. 
2- Then every 30 seconds I need to read the files again and get the latest values in the file, added them to the array. 
3- but immediately after step 1 is complete I can start a web server that will receive request from a browser. the server needs to send to the client some values form the array. 

所以我需要爲Web服務器的連續循環(初始值加載之後)才能夠回覆到客戶端,並在同一時間,我需要定期刷新陣列

與現有的應用程序,我這樣做:

1- read files , fill array 
2- start a thread to server the clients (until app is closed) 
3- start a thread to read the files again every N seconds and add new values to array (until app is closed) 

我將不勝感激任何想法去了解這一點,謝謝

+0

你可能想看看http://expressjs.com/。 –

+1

尋求幫助糾正企圖代碼在這裏是好的,但要求完整的實現不是。嘗試一些,發佈在你的問題,人們會咬:) –

+0

謝謝你alain,但我不是要求一個完整的實施,只是一些指針,讓我開始,如果這是可能的 – user3196371

回答

-1

我會聽爲使用流這些文件的事件,它的性能更好,也可以監聽事件(例如,如果有數據),如果他們有任何的數據,那麼我會閱讀和管道向其他可寫流(如您的HTTP響應),我更喜歡使用流和事件,而不是使用計時器,例如:

var fs = require('fs'); 
var stream = fs.createReadStream(path); 

stream.on('data',function(d){ 
    //just pipe it to your writable stream (you can use the http response) 
}); 

我希望這能幫你!

+0

謝謝你Bassam,...你的意思是,首先同步讀取文件,填充數組,然後爲當前文件設置一個流,並在訂閱數據事件時寫入數據事件,然後將其寫入數組,然後將數據複製到數組中,這樣數組 隨數據傳入而更新 然後還創建「http-server-like」功能?這個想法是通過數據事件的手段 填充數組 並且當客戶端請求數據node.js將執行該部分? – user3196371

+0

我的意思是讀取文件異步與流,因爲它是更好的性能,它是基於事件的「Emmiter」,所以你可以檢查流,如果它包含數據,你可以管它到其他可寫流(如響應) –