我想要将 json 流存储在文本文件中。运行 Node 服务器时,json 文件不会附加到 json.txt 文件中。我缺少什么?我是 Node 新手,所以要温柔..
这是我希望捕获 json 内容的代码块:
var fs = require('fs');
fs.writeFile("json.txt",{encoding:"utf8"}, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
最佳答案
问题是您没有使用正确的参数。调用fs.writeFile
时,它需要一个文件名字符串,一个内容缓冲区或字符串,一个选项对象和一个回调函数。您正在做的事情是在需要缓冲区或字符串时将选项作为第二个参数发送。更正如下;
var fs = require('fs');
fs.writeFile("json.txt", JSON.stringify({some: object}), {encoding:"utf8"}, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
如果您愿意,您可以用一些纯文本替换 JSON.stringify
部分,但是您在问题中指定了 JSON,所以我假设您想在文件中存储一些对象
Source (NodeJS 文档)
编辑: 如果您想在文件末尾添加新行而不是完全覆盖旧行,评论中其他问题的链接可能更相关。但是我假设 fs.writeFile 是预期的函数。如果这不是本意,那么其他问题将会有更多帮助
更新:
问题似乎在于主体没有被解析,因此当 POST 请求通过时,Node 没有请求主体。为了缓解这个问题,在快速配置时,需要以下代码:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
使用 npm 模块 body-parser
。这会将 JSON 主体转换为 JavaScript 对象,并且可以通过 req.body
访问它。
关于javascript - fs.write json 文件来捕获并保存流式 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289528/