【发布时间】:2011-04-17 21:58:17
【问题描述】:
我想检测文件的变化,如果文件发生变化,我会使用 child_process 执行 scp 命令将文件复制到服务器。我查阅了 node.js 文档,fs.watchFile 函数似乎是做什么的我想做,但是当我尝试它时,不知怎的,它并没有像我预期的那样工作。使用了以下代码:
var fs = require('fs');
console.log("Watching .bash_profile");
fs.watchFile('/home/test/.bash_profile', function(curr,prev) {
console.log("current mtime: " +curr.mtime);
console.log("previous mtime: "+prev.mtime);
if (curr.mtime == prev.mtime) {
console.log("mtime equal");
} else {
console.log("mtime not equal");
}
});
使用上面的代码,如果我访问被监视的文件,回调函数被执行,它会输出相同的mtime,并且总是输出“mtime not equal”(我只访问文件)。输出:
Watching .bash_profile
current mtime: Mon Sep 27 2010 18:41:27 GMT+0100 (BST)
previous mtime: Mon Sep 27 2010 18:41:27 GMT+0100 (BST)
mtime not equal
当两个 mtime 相同时,任何人都知道为什么 if 语句失败(也尝试使用 === 识别检查,但仍然得到相同的输出)?
【问题讨论】:
标签: javascript node.js