Экспресс JS + Sequelize и крюк - PullRequest
0 голосов
/ 09 октября 2018

Я разрабатываю приложение, в котором мне нужно выполнить дополнительную проверку при создании объекта.

Я пытался использовать ловушки и функцию beforeValidate, но она не работает.Я пытаюсь завершить проверку, если отправленное значение больше, чем значение в БД (вычисленное значение на основе пользовательского запроса).

Transaction.beforeValidate(function(transaction, options) {

    sequelize.query(
      'SELECT SUM(IF(type = "buy", number_of_shares, number_of_shares * -1)) as remaining FROM transactions WHERE account_id = $account_id',
      { 
        bind: { 
          account_id: req.body.account_id 
        }, 
        type: sequelize.QueryTypes.SELECT 
      }
    ).then(result => {
      if (req.body.type == "sell" && result.remaining < req.body.number_of_shares) {
        throw error('Number of remaining shares is less than what you are trying to sell.') // psudeo code
      }
    }).then(result => {
      return sequelize.Promise.resolve(user);
    })
  })

1 Ответ

0 голосов
/ 06 марта 2019

Вам не хватает return до sequelize.query(.

return sequelize.query(
...