gpt4 book ai didi

javascript - Node.js fs.watchFile,是否可以一次检查更改?

转载 作者:搜寻专家 更新时间:2023-11-01 00:08:14 25 4
gpt4 key购买 nike

刚接触 node.js 并且只是浏览 watchFile“模块”上的文档?(我不知道你称它为模块还是方法还是什么)

我当前的代码如下所示:

var fs = require("fs");

console.log("Started");
var file = fs.readFileSync("./files/checked.txt");
console.log("Initial file content: "+file);

fs.watchFile("./files/checked.txt",function(current, previous) {
console.log("File changed!");
file = fs.readFileSync("./files/checked.txt");
console.log("New file content: "+file);
});

它运行得非常好,但我想知道如何实现它以便一旦文件被更改一次,它就会停止检查它。

我意识到文件是无限的并且总是被检查,并决定看看它周围有一个总是真实的循环会做什么,我收到内存泄漏错误(因为 Node 不会让你有超过 11 个文件监听器( unless changed))... 这让我想知道,是否可以在文件更改一次后禁用文件监听器。

注意:我确信一定有某种粗略的方法,比如在 Node 检测到更改时更改文件名,但这听起来不像是最好的主意。您必须提供任何有趣的建议都会很棒,我不知道为什么这个功能会有用(有人会找到一些东西)。

编辑

已弃用,使用 fs.watch() Official Docs

最佳答案

请注意 fs.watchFile()已弃用。请改用 fs.watch()

同样,根据文档,watch 返回 fs.FSwatcher它有一个停止监视的 close() 方法。

请注意 watch 的回调有点不同,function(event, filename),其中 event 可以重命名或更改。

关于javascript - Node.js fs.watchFile,是否可以一次检查更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com