所以我有一个非常大的JSON数据,我通过AngularJS发送到节点服务器。这是我用来发送数据的程序: -
var send_data="data="+encodeURIComponent(JSON.stringify($scope.records,null,4));
$http({
method : 'POST',
url : 'http://localhost:8888/updateDetails',
data : send_data,
responseType : "json",
headers: {
"Content-Type": 'application/x-www-form-urlencoded'
}
}).success(function(data, status, headers, config){
console.log(data);
});
我成功地设法通过上面的代码向节点服务器发送了一个漂亮的打印JSON。但是,当我使用以下命令将其写入文件时: -
jsonfile.writeFile(file, JSON.parse(req['body']['data']), function (err) {
console.error(err);
});
经过一些测试后,我发现错误发生在JSON.parse语句中。有什么方法可以将JSON打印到文件中吗?
答案 0 :(得分:3)
使用JSON.stringify(data[, replacer[, indent]])
:
/* dynamic native SQL query */
SELECT
*
from
UFN_REPORTE_VENTAS_DESDE_HASTA('20543886913',
'01/07/2015',
'21/07/2015',
'1')
tamaño : 1648
Registro : VTGN_RV07-00003 CD_VTA : VT00012238
Registro : VTGN_RV07-00004 CD_VTA : VT00012239
Registro : VTGN_RV07-00004 CD_VTA : VT00012239
Registro : VTGN_RV07-00004 CD_VTA : VT00012239
Registro : VTGN_RV07-00004 CD_VTA : VT00012239
Registro : VTGN_RV07-00005 CD_VTA : VT00012240
Registro : VTGN_RV07-00006 CD_VTA : VT00012241
Registro : VTGN_RV07-00007 CD_VTA : VT00012242
Registro : VTGN_RV07-00008 CD_VTA : VT00012243
Registro : VTGN_RV07-00008 CD_VTA : VT00012243
Registro : VTGN_RV07-00008 CD_VTA : VT00012243
Registro : VTGN_RV07-00008 CD_VTA : VT00012243
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00017 CD_VTA : VT00012255
Registro : VTGN_RV07-00018 CD_VTA : VT00012256
Registro : VTGN_RV07-00018 CD_VTA : VT00012256
Registro : VTGN_RV07-00019 CD_VTA : VT00012257
Registro : VTGN_RV07-00019 CD_VTA : VT00012257
Registro : VTGN_RV07-00019 CD_VTA : VT00012257
Registro : VTGN_RV07-00020 CD_VTA : VT00012258
Registro : VTGN_RV07-00020 CD_VTA : VT00012258
Registro : VTGN_RV07-00020 CD_VTA : VT00012258
您可能也可能不需要解析响应正文 - 我相信构建器中的jsonfile.writeFile(file, JSON.stringify(JSON.parse(req.body.data), 0, 4), function (err) {
console.error(err);
});
会自动为您解析它:
responseType: "json"
以下是一个完整的工作孤立示例:
jsonfile.writeFile(file, JSON.stringify(req.body.data, 0, 4), function (err) {
console.error(err);
});
假设您通过HTTP监听器或express等框架处理POST请求?您使用身体解析器来解析传入的JSON吗?
试试吧:
var fs = require('fs');
var req = JSON.parse('{"body": {"data": "Some text."}}');
fs.writeFile('test.json', JSON.stringify(req.body, 0, 4), function (err) {
});
以确保您的服务器能够识别该请求。