mysql - .hasMany 调用的不是 Sequelize.Model 的子类
问题描述
我试图在 2 个模型之间引用一个外键。但我收到此错误:
throw new Error(this.name + '.hasMany called with something that\'s not a subclass of Sequelize.Model');
^
错误:user_relation.hasMany 调用的东西不是 Sequelize.Model 的子类
挤压.js
const Sequelize = require('sequelize');
const config = require('./default.config')
const sequelize = new Sequelize(config.database, config.user, config.password, {
host: config.host,
port: config.port,
dialect: 'mysql',
timezone: config.timezone,//东八区
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
});
sequelize
.sync()
.then(err => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
module.exports = sequelize;
用户模型
const sequelize = require('sequelize'); const Model = require('../../config/squelize');
const Admin = Model.define('admin', {
username : {type : sequelize.STRING, allowNull : false},//用户名
password : {type : sequelize.STRING, allowNull : false},//密码
details : {type : sequelize.STRING, allowNull : true},//简介
head_thumb : {type : sequelize.STRING, allowNull : true},//头像
gender : {type : sequelize.STRING, allowNull : true},//性别
nickname : {type : sequelize.STRING, allowNull : true},//昵称
userid : {type : sequelize.INTEGER, autoIncrement : true, primaryKey : true}//用户userid
}, {
freezeTableName:true
})
module.exports = Admin;
admin_relation.js
var Sequelize = require('sequelize');
const Model = require('../../config/squelize');
const Admin = require('./admin.model')
var user_relation = Model.define('user_relation', {
id : {type : Sequelize.INTEGER, autoIncrement : true, primaryKey : true},
userid : {type : Sequelize.STRING, allowNull : false},//用户id
frendid : {type : Sequelize.STRING, allowNull : false}//朋友id
},{
timestamps:false,
freezeTableName:true,
});
user_relation.hasMany(Admin,{as:'admin',foreignKey:'userid'})
module.exports = user_relation;
是否有人已经看到类似的错误?我搜索了几天没有任何问题,如果有人可以帮助我将非常感激,
感谢 !
解决方案
如果这是多对多场景,最好创建一个新模型,并在该模型中添加关系。否则,将关系放在一侧。
Admin.belongsTo(User);
而且在管理方面你也可以放
User.hasMany(Admin);
推荐阅读
- arrays - 我们不能用回车符\r比较字符串吗?
- javascript-automation - 通过能够在调试器中探索变量来克服缺乏 JXA 文档的问题
- c# - 如何修改数组中正在访问的索引
- spring - spring security reactive - 如何调试“无效凭据”错误?
- api - 如何从系统角度对微服务进行版本控制
- jestjs - 无法模拟自定义对象 addEventListener(e)
- c# - 将类的多个属性传递给函数并返回自定义属性的值
- python - 从 Linux 调用 python 脚本会导致 TypeError:file() 最多接受 3 个参数(给定 4 个)
- python - 映射dict值的dict以创建新结果
- wordpress - WordPress - “客户”子菜单上的 Woocommerce 自定义列