解析节点js req.body中的数组表示面临的问题

时间:2020-02-24 12:16:31

标签: node.js express

我在请求正文中得到一个数组,如(Get方法):

Array(1)[
0: {BuildNumber: ""10.0.0.10""}
]

我希望将buildNumber值传递到查询中。

 router.get("/GetTfsItem",function(req,res,next){

    console.log( "param   :" + req.body);

    }

当我尝试打印req.body时,它显示 param:[对象对象]

,如果我尝试打印req.body.BuildNumber,它将显示为undefined。

请帮助我解决此问题

2 个答案:

答案 0 :(得分:0)

您的req.body是对象而不是对象的数组,因此您需要遍历:

router.get("/GetTfsItem", function(req, res, next) {
  req.body.forEach((obj) => {
    console.log("param: ", obj.BuildNumber);
  });
})

答案 1 :(得分:0)

您可以使用快速中间件来解析JSON正文:

const express = require('express')
const app = express()

app.use(express.json()) // << This line

app.get('/GetTfsItem', function(req, res) {
  console.log(req.body)
})

app.listen(3000)

现在,如果您发送带有JSON正文的请求,如下所示:

GET /GetTfsItem HTTP/1.1
Host: localhost:3000
Content-Type: application/json

{
    "some": [ "foo", "bar" ]
}

然后console.log(req.body.some[0])将输出foo