Я хочу обнаружить изменения для файла, если файл изменится, я буду использовать 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
Кто-нибудь знает, почему оператор if сработал (также пытался использовать === идентифицировать проверку, но все равно получить тот же результат), когда два mtime одинаковы?