每當我正在觀看的文件發生更改時,我都想打印一條消息。我能夠使用console.log
來做到這一點,但我不知道如何使用response.write
或類似的功能來做到這一點。Node.js正在看文件
var counter = 0;
const
http = require('http'),
fs = require('fs'),
filename = process.argv[2];
var server = http.createServer(function(request, response) {
response.writeHead(200, { 'Content-Type' : 'text/plain' });
counter = counter + 1;
response.end('Hello client ' + Math.round(counter/2));
});
server.on('listening', function() {
var watcher = fs.watch(filename, function(){
console.log('The file ' + filename + ' has just changed.');
});
});
server.listen(8080);
另外,爲什麼我已經做了Math.round(counter/2)
是因爲計數器由2每一個客戶端連接時增加的原因。我想知道爲什麼會發生這種情況,以及是否有更好的技術來解決這個問題。
因此,如果用戶已經連接後,該文件已更改是不可能產生,而用戶一個新的響應gread模塊發送新的請求? – Barte
由於您正在調用'response.end()',您要將所有數據一次發送給用戶。你可以考慮使用'response.write()'(https://nodejs.org/api/http.html#http_response_write_chunk_encoding_callback)來寫入數據塊,這樣可以保持連接並保持發送數據到相同的響應,但是看起來像一個奇怪的事情要做。 –