我在nodejs
应用中有一个简单的脚本正在管理文件。启动应用程序后,它会无限期地工作,并以固定的时间间隔保存其当前电流值(即number
)。
假设我们有counter.dat
文件,其内容为数字6570
。应用已启动,其工作文件已连续几天正确更新。在某些情况下,我必须重新启动该过程,有时(很少)我在里面找到NaN
而不是正确的数字。
我进行了一些测试,似乎启动文件并退出它有时确实可以存储NaN。
const init = async () => {
...
const readCounter = await files.getContent("counter.dat");
...
};
const saveCounter = (counter) => {
// this value (counter) was never found NaN, but sometimes file has NaN inside
let stream = fs.createWriteStream("counter.dat");
stream.once('open', () => {
stream.write(counter);
stream.end();
});
};
是否存在退出脚本(例如,在MAC终端中使用CTRL + C
的脚本)可能导致number
被另存为NaN
,如果这样的话,可以采取什么措施来防止它发生?