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

Node.js 如何从POST请求中获得干净的响应并将其保存在json文件中,node.js,json,Node.js,Json,我有以下代码用于nodejs和hapi框架的POST请求: server.route({ method: "POST", path: "/newdata", config: { validate: { query: Joi.object({ alert: Joi.boolean().default(true)

我有以下代码用于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;
        }
    });
get的响应如下所示:“{\'name\”:“Johny Crumpy\”,“corp\”:“USA\”}”。我如何将其保存在json文件中,而不在任何地方都使用“”。在json文件中,它应该如下所示:{ “姓名”:“史蒂夫·鲍尔默”, “公司”:“微软”
},

您得到这些额外的引号是因为您做了两次
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;
        }

您正在进行两次字符串化…所以最终(部分)数据被双重编码。尝试更改
object.push(JSON.stringify(request.payload))
对象.push(请求.payload)
会不会将
[object object]
写入文件?你说得对,应该只有一个
JSON.stringify
,但那应该在
object.push
行中…哦,是的,谢谢,让我来解决这个问题。工作顺利,谢谢