我的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
?如果是,如何防止?
是的,很明显,如果您输入CTRL + c
,那么您的流程将关闭。
即使关闭了终端,也必须保持脚本的有效性。
有一个名为pm2的模块,您可以通过pm2启动脚本。