gpt4 book ai didi

node.js - Sequelize findAll 上的验证错误

转载 作者:行者123 更新时间:2023-12-03 22:41:08 32 4
gpt4 key购买 nike

我正在使用 sequelize 2。我基本上是在尝试进行验证,该验证最多只允许 2 个人的角色等于每个帐户的成员。目前,我收到一个错误:

未处理的拒绝错误:[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]

当我运行开发数据库构建时。顺便说一句,我尝试插入 8 条记录。

我应该如何更改此验证以使其在没有此错误的情况下正常工作?我是 Node 新手。

module.exports = function(sequelize, DataTypes) {
var MemberAccount = sequelize.define('member_account', {
role: {
type: DataTypes.STRING,
allowNull: false,
validate: {
isIn: {
args: [['member',
'advocate']],
msg: 'Must be member or advocate'
},
hasFewMembers(value, next) {
var self = this;
var v = MemberAccount.findAll({
where: {
role: 'member'
}
,attributes: [[sequelize.fn('COUNT', sequelize.col('role'))]]
})
.then(function(member_count) {
if (self.role=='member' && member_count == 2) {
throw new Error('Only 2 members allowed per account!');
}
return next();
})
.catch(function (err) {
return next(err);
});

return v;

}

最佳答案

我觉得钩子(Hook)比验证更适合您的用例。
您可以创建一个“beforeCreate”钩子(Hook),该钩子(Hook)将在将记录插入数据库之前触发。
见此链接http://docs.sequelizejs.com/manual/tutorial/hooks.html

关于node.js - Sequelize findAll 上的验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45293418/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com