有没有办法使用typescript和sequelize向查询添加选项?
嗨,我正在尝试为一个数据库构建一个搜索和过滤功能,用户可以在其中打开过滤器并搜索特定的入口。我正在使用typescript和sequelize 我想返回一个项目列表,其中应用了过滤器和searchterm。 我希望我的代码执行如下操作:有没有办法使用typescript和sequelize向查询添加选项?,typescript,search,sequelize.js,backend,Typescript,Search,Sequelize.js,Backend,嗨,我正在尝试为一个数据库构建一个搜索和过滤功能,用户可以在其中打开过滤器并搜索特定的入口。我正在使用typescript和sequelize 我想返回一个项目列表,其中应用了过滤器和searchterm。 我希望我的代码执行如下操作: const { Op } = require('sequelize'); let options = {}; if(searchParameters.name){ options += { [Op.like]: { itemName: '%' + se
const { Op } = require('sequelize');
let options = {};
if(searchParameters.name){
options += { [Op.like]: { itemName: '%' + searchParameters.name + '%'}}
}
return Item.findAll({
where: options
}
我试图只应用用户实际提供的过滤器,如果过滤器为空,我会忽略它,但我找不到方法使其工作。您最终试图为包含
where
属性的选项构造一个JSON对象。要做到这一点,您可以根据您想要的任何标准将标准添加到选项中。您的示例中的参数格式错误,其中
参数的结尾如下:
const { Op } = require('sequelize');
let options = {};
if(searchParameters.name){
options += { [Op.like]: { itemName: '%' + searchParameters.name + '%'}}
}
return Item.findAll({
where: options
}
const选项={
其中:{
项目名称:{
[Op.like]:`%${searchParameters.name}%',
},
},
};
有条件地达到目标类似于以下步骤:
const{Op}=require('sequelize');
// ... 代码
常量,其中={};
if(searchParameters.name){
其中.itemName={
[Op.like]:`%${searchParameters.name}%`,
}
}
const items=wait Item.findAll({where});