在尝试获取request.body Nodejs中的所有字段时获取异常“Object.keys在尝试访问对象时调用非对象

Get exception "Object.keys called on non-object while trying to access object" while trying to get all field in request.body Nodejs?

本文关键字:获取 对象 Object keys 调用 异常 访问 body request Nodejs 字段      更新时间:2023-09-26

我有一段这样的PUT方法代码

module.exports.addRoutes = function(server) {
     //PUT
    server.put('/api/public/place/:id', function(request, response) {
         //this is just for testing, please do not care about the id
         var placedetail = request.body;
         for(var key in placedetail)
         {
              console.log(placedetail[key]);
         }
    });
};

在此代码中,我想获取所有请求正文字段,如 request.body.name、request.body.email 等。字段参数将由用户决定,服务器将按键获取值。

例如,用户将数据放入请求中,例如

{
name:"Test"
email:"abc@gmail.com"
}

另一个用户将数据放在这样的

    {
    address:"Test"
    location:"Some Test String"
    }

我使用这种方式并得到异常"尝试访问对象时调用非对象的 Object.keys"。但是当访问每个字段时,例如:request.body.name,request.body.email,它仍然成功获取参数。

我也你另一种通过JSON.parse(request.body.toString())来解析数据的方法,但实际上,数据不是JSON,不能解析。

如何获取request.body的所有字段?

谢谢。

您可以使用 body-parser 模块来解析 req.body 数据:

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));