fs.write json文件捕获并保存流式json文件
我想要json流存储在文本文件中。运行节点服务器时,json文件不会附加到json.txt文件。我错过了什么?是新的节点,所以,请温柔..fs.write json文件捕获并保存流式json文件
下面是一个代码块我希望能捕捉到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
是预期的功能。如果不是意图,与其他问题将有很大的帮助更
UPDATE:
看来这个问题是一个事实,即身体没有被解析,所以当POST请求是经过,Node没有请求体。为了缓解这个,快递配置过程中,需要下面的代码:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
采用NPM模块body-parser
。这会将JSON正文转换为JavaScript对象,并可通过req.body
访问。
这种情况是,我正在从服务器监听HTTP POST发布JSON - 我想捕获“原始JSON”并将其存储在json.txt文件中。我已经稍微调整了脚本,使其为:app.post('/ incomingPOST',function(req,res){ var obj = { 表:[] }; 变种JSONP = JSON.stringify(OBJ); 变种FS =需要( 'FS'); fs.writeFile(“json.txt”,jsonp,{flag:'a'},function(err){if(err){console.log(err); } else { console.log(“The file was saved!”); } }) });它正在附加一个带有空JSON数据的文件。 – Antex
我不确定发生了什么事情。我在一个裸机测试应用程序上测试了您的确切代码,它工作正常。它在我的项目根目录下用'{“table”:[]}'创建了一个'json.txt'文件。如果您简化了代码,请尝试共享您的内容,因为您在评论中给出的示例适用于我。如果它没有被简化,那么也许别的东西在干扰 – Chifilly
我也一样。而不是{“table”:[]} - 我想从服务器保存JSON。不完全确定应该为什么设置obj?我是初学者 - 对不起,如果这应该是显而易见的。 – Antex
可能是[此问题]的副本(https://stackoverflow.com/questions/3459476/how-to-append-to-a-file-in-node) – Jthorpe
可能的重复[如何追加到文件在节点?](https://stackoverflow.com/questions/3459476/how-to-append-to-a-file-in-node) –