正如我在标题中所说,我正在尝试使用 Node 中的 fs 存储用户在 HTML 表单上所做的输入,并将其存储在 JSON 文件中。
我想要保存的是一个键值对,如下所示:
{
fName: example,
lName: example,
email: example,
pswd: example
};
但是我得到的是:
{ '[object Object]': '' }
我有两个文件用于处理此问题,一个用于验证输入并在一切正常的情况下进行 AJAX 调用,另一个用于处理 HTTP 请求并将数据保存在 JSON 文件中。
这里是 AJAX 调用:
let formElement = {
fName: firstName,
lName: lastName,
email: email,
pswd: pswd
};
var request = new XMLHttpRequest();
request.open('POST', './signUp.js');
request.setRequestHeader("Content-type", "application/json");
request.send(formElement);
这里是管理 HTTP 请求的代码:
collectReqData(req, res => {
let data = JSON.parse(JSON.stringify(res));
fs.writeFileSync('signUp.json', data);
});
我也尝试过 let data = JSON.stringify(res);
但我得到了相同的响应。
如果有人可以帮助我,我会非常高兴,我被困在这个问题上,我不知道该怎么办。
最佳答案
无法重新创建您的服务器代码行为。信息不足。但@jfarleyx 的答案对我来说看起来是合法的。但从 collectReqData()
的外观来看,您可能不使用 Express 框架。尽管如此,根本问题在于客户端代码:您应该将 request.send(formElement);
更改为 request.send(JSON.stringify(formElement));
更新以反射(reflect)评论
查看 repl.it 后,我发现您的问题不在于问题中的代码,而在于跳过的代码。特别是对于 collectReqData()
和 collect()
我不知道你希望它们如何/所以我使用 body-parser
并且不想显得花哨。您可以在https://repl.it/repls/SadCulturedFormat检查正确工作的代码。
关于javascript - 尝试使用 Node.js 将输入数据存储在 json 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59569855/