Как использовать условие if внутри условия where в Sequelize.js - PullRequest
0 голосов
/ 21 сентября 2018

Я хотел бы запросить ManufacturerId: manufacturer_id, только если manufacturer_id не равно нулю.

Я пробовал этот код, но он дает мне синтаксическую ошибку:

/* Get Brands List */
router.get('/', function(req, res) {
  var archived_status = req.query["archived-status"];
  var manufacturer_id = req.params.manufacturer_id;
  models.Brand.findAll({
    where: {
        brand_archived_status: archived_status,
        if(manufacturer_id != null){
          ManufacturerId: manufacturer_id
        }
    },
    include: [{
      model: models.Job,
      required: false
    }]
  }).  
  then(function(brands) {  
      res.status(200).json(brands);  
  }, function(error) {  
      res.status(500).send(error);  
  });  
});

1 Ответ

0 голосов
/ 21 сентября 2018

Почему бы вам просто не выполнить условие where вне запроса Sequelize, вот и все:

let where = {
    brand_archived_status: archived_status
};
if (manufacturer_id != null) {
    where['ManufacturerId'] = manufacturer_id
}

models.Brand.findAll({
    where,
    include: [{
        model: models.Job,
        required: false
    }]
})

Это будет выглядеть чисто и просто:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...