Javascript Node.js:在修改时确定文件大小

Javascript Node.js:在修改时确定文件大小,javascript,node.js,filesystems,Javascript,Node.js,Filesystems,我正在Node.js中查看一个文件,并希望在每次更改时获得该文件的大小。如何使用fs.watchFile 这就是我目前正在做的: fs.watchFile(file, function(curr, prev) { // determine file size }); 在回调中使用fs.stat:watchFile只是让您知道它已更改,它不会报告更改的详细信息。我忽略了从fs.watchFile返回的变量curr和prev是fs.Stats的实例。这将是最佳解决方案: var fs = re

我正在Node.js中查看一个文件,并希望在每次更改时获得该文件的大小。如何使用
fs.watchFile

这就是我目前正在做的:

fs.watchFile(file, function(curr, prev) {
  // determine file size
});

在回调中使用
fs.stat
watchFile
只是让您知道它已更改,它不会报告更改的详细信息。

我忽略了从
fs.watchFile
返回的变量
curr
prev
fs.Stats
的实例。这将是最佳解决方案:

var fs = require('fs');

fs.watchFile('some.file', function () {
    fs.stat('some.file', function (err, stats) {
        console.log(stats.size);
    });
});
var fs = require('fs');

fs.watchFile('file', function (curr, prev) {
  console.log(curr.size);
});
但是,从节点v0.8.0开始,
fs.watchFile
不再使用
IOWatcher
,现在使用stat轮询,这很慢,不提供实时更新。这一点在会议上进行了讨论

从节点:

不推荐iowatcher,fs:fix fs.watchFile()(Ben Noordhuis)

相反,另一种解决方案现在是
fs.watch
fs.stat

var fs = require('fs');

fs.watch('file', function (curr, prev) {
  fs.stat('file', function (err, stats) {
    console.log(stats.size);
  });
});