【问题标题】:Parsing arrays in req.body in node js express facing issue在节点js中解析req.body中的数组表达面临的问题
【发布时间】:2020-06-08 01:49:33
【问题描述】:

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

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

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

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

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

    }

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

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

请帮我解决这个问题

【问题讨论】:

  • 在打印之前尝试JSON.parse(req.body)
  • 位置 1 的 json 中的意外标记 o 在尝试解析时出现此错误

标签: node.js express


【解决方案1】:

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

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

【讨论】:

  • req.body.forEach 不是得到此错误的函数
【解决方案2】:

您可以使用快速中间件解析 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

【讨论】:

    猜你喜欢
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    相关资源
    最近更新 更多