gpt4 book ai didi

javascript - FindAll 内部模型 Hook 'afterFind' 在 nodejs 中使用 sequelize 不起作用

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

我在nodejs中有一个使用sequelize的项目。
我正在尝试在模型中执行 FindAll,但出现此错误:

Cannot read property 'findAll' of undefined
我像这样导入模型:
const db = require('./index');
在模型 Hook 中,我正在尝试这样做:
hooks: {
afterFind: async function(User){

let ranks_db = await db.rank.findAll({ });
// let rank = await checkRank(User.exp);

User['exp'] = {
value: User.exp,
rank
};

return User;

}
}
findAll 它在 Controller 中工作但不在模型中
.我想知道是否可以在模型中执行 FindAll

最佳答案

您的模型和 db.rank 之间可能存在循环依赖关系。当您在此处显示的模型构建时,尚未填充。而不是通过 require 导入模型您可以从 sequelize 中引用它们传递给模型的变量。

module.exports = function Model(sequelize, DataTypes) {
return sequelize.define('user', { /* columns */ }, {
hooks: {
afterFind: async function(user) {
const ranks = await sequelize.models.rank.findAll();
// user.ranks = ranks;
},
}
});
}

关于javascript - FindAll 内部模型 Hook 'afterFind' 在 nodejs 中使用 sequelize 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65853542/

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