我们如何在一个项目中同时使用 'extended' true 或 false

How can we use 'extended' true or false both in one project

我正在使用 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,得到所有记录。

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

请帮忙

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

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

并使用点 (.) 运算符而不是 req.body['....[...]']

来提取对象

例如,

req.body.search.value 

工作正常,但是

req.body['search[value]']

可能未定义