如何从POST请求中获得干净的响应并将其保存在json文件中



我有以下代码用于nodejs和hapi框架的POST请求:

server.route({
method: "POST",
path: "/newdata",
config: {
validate: {
query: Joi.object({
alert: Joi.boolean().default(true)
})
}
},
handler: (request, h) => {
fs.readFile('./data.json', (err, data) => {
if (err) {
console.log(`Error reading file: ${err}`);
} else {
const object = JSON.parse(data);
object.push(JSON.stringify(request.payload));
console.log(object)
fs.writeFileSync('./data.json', JSON.stringify(object, null, 4), (err) => {
if (err) {
console.log(`Error writing file: ${err}`);
}
});
}
});
return request.payload;
}
});

得到的回复是这样的:";{"名称":"Johny Crumpy","公司":"美国";。如果没有"quot;无处不在。在json文件中,它应该是这样的:{"name":"Steve Ballmer";,"corp":"微软;},

您得到这些额外的引号是因为您要执行两次JSON.strigify。试试这个。

handler: (request, h) => {
fs.readFile('./data.json', (err, data) => {
if (err) {
console.log(`Error reading file: ${err}`);
} else {
const object = JSON.parse(data);
object.push(request.payload);
console.log(object)
fs.writeFileSync('./data.json', JSON.stringify(object, null, 4), (err) => {
if (err) {
console.log(`Error writing file: ${err}`);
}
});
}
});
return request.payload;
}

最新更新