如何在发布方法节点js中修复此字符

时间:2018-10-21 12:50:09

标签: node.js api

当我使用邮递员并向数组元素发布带有一些字符的帖子时,我不知道如何使其正确使用json

[{"name":"alpha","password":"123","id":4},"{\r\n      \"name\" : \"test\",\r\n      \"password\" : \"password3\",\r\n      \"id\": 5\r\n}\r\n"]

与上述输出一样

{"name":"alpha","password":"123","id":4}

这是我发布此值时的默认值

{\r\n      \"name\" : \"test\",\r\n      \"password\" : \"password3\",\r\n      \"id\": 5\r\n}\r\n"

我的代码中还有一些额外的字符串

app.post("/postUser", function (req, res) {
    req.on("data", function (data) {
        console.log(data.toString());
        fs.readFile("test.json", "utf8", function (readErr, fileData) {
            if (readErr) {
                console.error(readErr);
            }
            newData = JSON.parse(fileData);
            newData[newData.length] = data.toString();

            fs.writeFile("test.json", JSON.stringify(newData), "utf8", function (writeErr) {
                if (writeErr) {
                    console.error(writeErr);
                }
                console.log("Finished writing!");

            });
        });
    });
});

1 个答案:

答案 0 :(得分:0)

数据仍然是utf8字符串,因此包括标准的换行符。您可以在服务器中添加正文解析器,以简化生活(https://www.npmjs.com/package/body-parser)。

 app.use(bodyParser.json())
 ...
 app.post("/postUser", (req, res) => {
     console.log(req.body);
 }

编辑 您还应该确保使用内容类型application / json将请求发送到服务器;