gpt4 book ai didi

node.js - 缺少选项参数中的 where 属性 - Sequelize

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

我正在使用 Sequelize 版本 4.8.0。根据文档 http://docs.sequelizejs.com/class/lib/model.js~Model.html#static-method-update ,这看起来应该是正确的,但是,我收到此错误: Missing where attribute in the options parameter

const role = req.body;

sequelize.transaction((t)=> {
return sequelize.models.role.update(role, {where: req.params, transaction:t}).then(() => {
res.json({success: true});
})
})
.catch(errorCatch(res));
}

记录 req.params 显示它是这样的: { id: 'f212d399-f139-4d76-b892-7c2a83281f9b' } 所以这不是问题所在。
谁能告诉我我做错了什么。我认为这可能与交易有关。

最佳答案

我把这个端点作为一个 GraphQL 突变,它使用基本相同的代码。我还将我的 Sequelize 更改为 3.30.2,但我与它在突变中的工作没有任何关系,因为我也在端点上尝试过。

const UpdateRole = {
type: ResponsePayload,
args: baseUpdate,
resolve: (root, role, context) => {
return joiValidate({
permission: "WriteRole",
obj: role,
joiModel: roleJoiModel,
user: context.user
}).then(() => {
return sequelize.transaction(t => {
return sequelize.models.role
.update(role, { where: { id: role.id } }, { transaction: t })
.then(() => {
return sequelize.models.role.findOne({ where: { id: role.id } });
})
.then(r => {
return Promise.all([
r.setPermissions(role.permissions || [], { transaction: t }),
r.setUsers(role.users || [], { transaction: t })
]);
})
.then(r => {
if (role.isDefault) {
return sequelize.models.role
.update(
{ isDefault: false },
{
where: {
id: {
$ne: role.id
}
}
}
)
.then(() => {
return Promise.resolve({ success: true });
});
} else {
return Promise.resolve({ success: true });
}
});
});
});

关于node.js - 缺少选项参数中的 where 属性 - Sequelize ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46063041/

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