繁体   English   中英

如何在node.js中的sequelize中的where子句中使用request.body数组

[英]How to use request.body array in where clause with sequelize in nodejs

我想用sequelize从数据库中搜索多个元素。 我在操作符中使用它。

当我在$ in中写入$时,它起作用:[1,2]

但是当我在$ in:[req.body.regions]中写//时不起作用。 如何将正文对象解析为数组。

Phones.findAll({
                attributes: ['id', 'enabled', 'color_id', 'sold', 'region_id'
                ],
                where: {
                    region_id: (req.body.region_id) ? { $in : [req.body.region_id]}: { $ne: null },
                    color_id: (req.body.color_id) ? { $in : [req.body.color_id]} : { $ne: null },
                    phone_model_id: (req.body.phone_model_id) ? { $in : [req.body.phone_model_id]} : { $ne: null },
                    enabled: 1,
                },

邮递员的例子

解决方案 :正如我所看到的,请求是逗号分隔的,可以使用以下命令:

{ $in : req.body.region_id.split(",") }

好的方法 :应该是postman api中的regions[0], regions[1]或只是重复使用相同名称的regions[] ,然后在代码中像这样使用它:

{ $in : req.body.regions }

第一种方法很容易在邮递员中测试,但对于开发人员来说,第二种方法则更优雅,更易于创建或维护数组,而不是用逗号分隔的字符串

如果

req.body.regions

是一个数组,使用此代码:

$in: req.body.regions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM