Node.js 节点:如何将数据推送到Json文件中。。。data.push不工作

Node.js 节点:如何将数据推送到Json文件中。。。data.push不工作,node.js,json,express,Node.js,Json,Express,我想将一些数据推送到json文件中,数据来自用户I have data.json文件 我的代码: data.json: 在postman的输出中,我在postman中检查了这一点,它工作正常,它推送数据并显示正确的数据,但当我检查我的data.json文件时,它没有更新,这背后的原因是什么,让我显示输出 邮递员: data.json文件 我还尝试: data.push(newTask) res.json(data) data=data 但它甚至不起作用 有人能解决这个问题吗?或者有什么提示吗

我想将一些数据推送到json文件中,数据来自用户I have data.json文件

我的代码: data.json: 在postman的输出中,我在postman中检查了这一点,它工作正常,它推送数据并显示正确的数据,但当我检查我的data.json文件时,它没有更新,这背后的原因是什么,让我显示输出

邮递员:
data.json文件
我还尝试:

data.push(newTask)
res.json(data)
data=data
但它甚至不起作用

有人能解决这个问题吗?或者有什么提示吗?

重要的是要认识到,使用
require
加载JSON文件并不会给您提供文件引用。相反,Node将读取JSON文件并从中创建一个JavaScript对象(可能使用类似于
JSON.parse

因此,代码中的
data
变量不是实际的
data.json
文件,而是包含
data.json
内容的变量。因此,当您修改
数据时,您只修改内存中的数据,而不修改文件。为了保存对文件的更改,您需要再次将
data
中更新的数据写入文件
data.json
。您可以使用如下的
fs.writeFile
函数执行此操作:

fs.writeFile('data.json', JSON.stringify(data), 'utf8', callback);

重要的是要认识到,加载带有
require
的JSON文件不会给您提供文件引用。相反,Node将读取JSON文件并从中创建一个JavaScript对象(可能使用类似于
JSON.parse

因此,代码中的
data
变量不是实际的
data.json
文件,而是包含
data.json
内容的变量。因此,当您修改
数据时,您只修改内存中的数据,而不修改文件。为了保存对文件的更改,您需要再次将
data
中更新的数据写入文件
data.json
。您可以使用如下的
fs.writeFile
函数执行此操作:

fs.writeFile('data.json', JSON.stringify(data), 'utf8', callback);

数据中的
变量是什么?你能给我们看一下加载JSON文件的代码吗?我更新了代码,请检查是否有任何错误?即使我在postman中没有得到完美的结果,它也会用我推送的对象显示数据,但在实际的数据中显示数据。JSON显示实际的前一个数据返回,状态为200
数据中有什么变量?你能给我们看一下加载JSON文件的代码吗?我更新了代码,请检查是否有任何错误?没有,即使我在postman中得到了完美的结果,它也会用我推送的对象显示数据,但在实际的数据中显示数据。JSON显示了实际的以前的数据返回,状态为200。谢谢你的回复,我尝试了这一点,它会向我显示错误,如回调不是定义之后,我引用了您提供的链接,从中我对代码做了一点修改,并将其转换为:
fs.writeFile('data.json',json.stringify(data),(err)=>{if(err)throw err console.log(“Updated…”)太好了,你自己解决了!事实上,我很快,在我的示例中没有声明回调变量。但是它应该是类似于
constcallback=(err)=>{if(err){throw err;}console.log(“Updated…”)的东西。将其内联到函数调用中也很好!我只是忘了这么做,非常感谢你的解决方案,这意味着很多,你节省了我的时间:)嘿,谢谢你的回答,我尝试了这个,它告诉我错误,比如回调没有定义,然后我参考了你给出的链接,从中我在代码中做了一点修改,它工作了:
fs.writeFile('data.json',json.stringify(data),(err)=>{if(err)throw err console.log(“更新的…”)});
很好,你自己解决了这个问题!事实上,我很快,在我的示例中没有声明回调变量。但是它会像
const callback=(err)=>{if(err{throw err;}console.log(“更新的…”)一样;
。将其内联到函数调用中也很好!我只是忘记了这么做。非常感谢您的解决方案,这意味着很多,您节省了我的时间:)
fs.writeFile('data.json', JSON.stringify(data), 'utf8', callback);