Javascript Linux fs.writeFileSync()在应用程序关闭之前不会写入文件

Javascript Linux fs.writeFileSync()在应用程序关闭之前不会写入文件,javascript,node.js,fs,Javascript,Node.js,Fs,使用windows我当前使用的代码: var file = JSON.parse(fs.readFileSync(filePath), 'utf8'); file[id] = JSON.parse(`{"name":name}`); fs.writeFileSync(filePath, JSON.stringify(file,null,2); 这在windows上运行得很好。但是,当我将此代码传输到我的linux机器上进行跨平台测试时。在我停止运行应用程序之前,文件不会得到更新 我所尝试的:

使用windows我当前使用的代码:

var file = JSON.parse(fs.readFileSync(filePath), 'utf8');
file[id] = JSON.parse(`{"name":name}`);
fs.writeFileSync(filePath, JSON.stringify(file,null,2);
这在windows上运行得很好。但是,当我将此代码传输到我的linux机器上进行跨平台测试时。在我停止运行应用程序之前,文件不会得到更新

我所尝试的:

正在运行“chmod-r 0777路径/to/dir/”

检查是否是由于最大文件打开限制(不是因为我的限制非常大)

Linux:mintlinux4.10.0-38-generic#42~16.04.1-Ubuntu(来自uname-a)

节点:8.10.0

编辑:intelliJ idea


我还直接从intelliJ中的run按钮运行代码,我不确定这是否是原因,如果是原因,为什么会出现这种情况。

添加选项{mode:0o777}作为写入操作中的最后一个参数,修复了文件不更新的问题。

您可能希望在问题中包括。。。哪个版本的node,哪个发行版和linux发行版?因为,这根本不会发生。另外,请尝试创建一个最小的、完整的、可验证的示例来演示问题。您是否真正使用该代码
var json[id]=json.parse('{“name”:name}')在我看来无效。文本中提供的代码实际上是错误的。。。我已经修复了它,至于我的实际代码,我确实使用了几乎相同的东西