【问题标题】:How can we use 'extended' true or false both in one project我们如何在一个项目中同时使用“扩展”真或假
【发布时间】:2019-04-24 06:10:41
【问题描述】:

我正在使用 express 开发 nodejs,在我的项目中我需要过滤器和嵌套对象。

如果我为 bodyparser 设置这个中间件

app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json('application/json'));

然后过滤器正常工作,但嵌套对象给出未定义的值

看图片中的那个,我搜索 amit,我只得到一个名字是 amit 的记录

如果我为 bodyparser 设置这个中间件

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json('application/json'));

然后嵌套对象正常工作,但过滤器给出未定义的值

我搜索 amit 并获得所有记录。

我怎样才能正确获得这两个值?

请帮忙

【问题讨论】:

  • 您能否举例说明extended: true 时哪个过滤器无法正常工作?
  • 看这个例子兄弟

标签: node.js body-parser express-4


【解决方案1】:

当您设置扩展为 false 时,您无法传递嵌套对象。中间件用于从传入请求中提取正文内容。所以你可以做一件事, 使用以下代码

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json('application/json'));

并使用 dot(.) 运算符而不是 req.body['....[...]'] 提取对象

例如,

req.body.search.value 

工作正常,但是

req.body['search[value]']

可能未定义

【讨论】:

    猜你喜欢
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多