Я пытаюсь выполнить запрос в sequelize, в котором должны быть добавлены условия, основанные на параметрах запроса
router.get("/getsearchdata",(req, res) => {
var searchquery =[
{model:ProvidersCategories,attributes:["category_id"],
include: [
{model:Categories,attributes:["category_id","category_name"]},
]
}
]
if(req.query.agency && req.query.agency!=''){
searchquery.where = {
$and: [
{agencyName: {$like: '%' + req.query.agency + '%'}},
]
}
}
Providers.findAll({
include:searchquery
}).then(providerData =>{
if(!providerData) {
res.status(404).send({reason:'no data found'});
} else {
res.status(200).send(providerData);
}
});
});
У меня есть три таблицы «поставщики», «категории» и «поставщик_Категории»».Я пытаюсь объединить три таблицы и получить поставщиков.В запросе, т.е. req, если есть вход req.query.agency != ''
, то условие if должно быть добавлено where agencyName like "% + req.query.agency + %"
, если вход req.query.agency == ''
, тогда условия if не должно быть.Для которого я попробовал приведенный выше код.Но условие where не объединяется с основным запросом, даже если есть входные данные req.query.agency
Как правильно написать, где условно