I want to watch two files with chokidar in NodeJS the following way:
- set up a watcher for
file1
, periodically download a file under this name and when the download is finished, edit the content offile2
- set up a watcher for
file2
and when its content is modified, change theexports.foo
variable's value
This concept works very well on localhost
(under Windows), but when I deploy the code to the server the change of file2
's content is not noticed. Simply the change
event is not fired. Below is the code (note that the file1
is downloaded every 5 minutes from somewhere and the change of this file is noticed):
chokidar.watch(file2, {
awaitWriteFinish: {
stabilityThreshold: 2000,
pollInterval: 100
}
}
).on('all', function (event, path) {
if (fs.existsSync(file2)) {
fs.readFile(file2, function (err, data) {
if (!err) {
file2_content = readFileContent(file2);
exports.foo= file2_content;
}
});
}
});
chokidar.watch(file1, {
awaitWriteFinish: {
stabilityThreshold: 2000,
pollInterval: 100
}
}
).on('all', function (event, path) {
if (fs.existsSync(file1)) {
fs.readFile(file1, function (err, data) {
if (!err) {
/*
modify file2's content based on data in file1
(for this purpose fs.writeFile() function is used)
*/
}
});
}
});
What could be the problem with this implementation of my idea? Why does this work on localhost
, but fails on the server?
via Thookes
No comments:
Post a Comment