将具有内容的文件保存为具有NaN内容的数字结果

问题描述 投票:0回答:1

我在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,如果这样的话,可以采取什么措施来防止它发生?

javascript node.js file fs
1个回答
0
投票

是,很明显,如果您输入CTRL + c,则过程将关闭。

即使关闭终端,也必须保持脚本活动。

有一个名为pm2的模块,您可以通过pm2启动脚本。

© www.soinside.com 2019 - 2024. All rights reserved.