首页 > 解决方案 > 将带有内容的文件保存为带有 NaN 内容的数字结果

问题描述

我的nodejs应用程序中有一个简单的脚本来管理文件。当应用程序启动时,它会无限期地工作,并以固定的时间间隔保存其当前值(即 a number)。

假设我们有counter.dat文件,它的内容是 number 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();
    });
};

是否可以将退出脚本(例如CTRL + C在 MAC 终端中)number保存为NaN,如果是这样,可以采取什么措施来防止它?

标签: javascriptnode.jsfilefs

解决方案


是的,很明显,如果您输入,CTRL + c那么您的流程将关闭。

即使关闭终端,您也必须保持脚本处于活动状态。

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


推荐阅读