快递js + Sequelize和钩子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快递js + Sequelize和钩子相关的知识,希望对你有一定的参考价值。
我正在开发一个应用程序,我需要在创建对象时进行额外的验证。
我尝试使用hooks和beforeValidate函数,但它不起作用。如果提交的值大于db中的值(基于自定义查询的计算值),我试图验证失败。
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);
})
})
答案
你在return
之前错过了一个sequelize.query(
。
return sequelize.query(
以上是关于快递js + Sequelize和钩子的主要内容,如果未能解决你的问题,请参考以下文章
Sequelize beforeConnect 钩子与 sequelize-typescript 未运行