use*_*459 5 mysql orm node.js sequelize.js node-modules
我试图在两个模型之间引用外键。\n但我收到此错误:
\n\nthrow new Error(this.name + '.hasMany called with something that\\'s not a subclass of Sequelize.Model');\n^
错误: user_relation.hasMany 调用的内容不是 Sequelize.Model 的子类
\n\nsquelize.js
\n\nconst Sequelize = require('sequelize');\nconst config = require('./default.config')\nconst sequelize = new Sequelize(config.database, config.user, config.password, {\n host: config.host,\n port: config.port,\n dialect: 'mysql',\n timezone: config.timezone,//\xe4\xb8\x9c\xe5\x85\xab\xe5\x8c\xba\n pool: {\n max: 5,\n min: 0,\n acquire: 30000,\n idle: 10000\n }\n});\n\nsequelize\n .sync()\n .then(err => {\n console.log('Connection has been established successfully.');\n })\n .catch(err => {\n console.error('Unable to connect to the database:', err);\n });\n\nmodule.exports = sequelize;\nRun Code Online (Sandbox Code Playgroud)\n\n用户模型
\n\nconst Sequelize = require('sequelize');\n const Model = require('../../config/squelize');
\n\nconst Admin = Model.define('admin', {\n username : {type : sequelize.STRING, allowNull : false},//\xe7\x94\xa8\xe6\x88\xb7\xe5\x90\x8d\n password : {type : sequelize.STRING, allowNull : false},//\xe5\xaf\x86\xe7\xa0\x81\n details : {type : sequelize.STRING, allowNull : true},//\xe7\xae\x80\xe4\xbb\x8b\n head_thumb : {type : sequelize.STRING, allowNull : true},//\xe5\xa4\xb4\xe5\x83\x8f\n gender : {type : sequelize.STRING, allowNull : true},//\xe6\x80\xa7\xe5\x88\xab\n nickname : {type : sequelize.STRING, allowNull : true},//\xe6\x98\xb5\xe7\xa7\xb0\n userid : {type : sequelize.INTEGER, autoIncrement : true, primaryKey : true}//\xe7\x94\xa8\xe6\x88\xb7userid\n}, {\n freezeTableName:true\n})\n\nmodule.exports = Admin;\nRun Code Online (Sandbox Code Playgroud)\n\n管理关系.js
\n\nvar Sequelize = require('sequelize');\nconst Model = require('../../config/squelize');\nconst Admin = require('./admin.model')\n\nvar user_relation = Model.define('user_relation', {\n id : {type : Sequelize.INTEGER, autoIncrement : true, primaryKey : true},\n userid : {type : Sequelize.STRING, allowNull : false},//\xe7\x94\xa8\xe6\x88\xb7id\n frendid : {type : Sequelize.STRING, allowNull : false}//\xe6\x9c\x8b\xe5\x8f\x8bid\n},{\n timestamps:false,\n freezeTableName:true,\n});\nuser_relation.hasMany(Admin,{as:'admin',foreignKey:'userid'})\n\nmodule.exports = user_relation;\nRun Code Online (Sandbox Code Playgroud)\n\n有人已经看到类似的错误了吗?我搜索了几天没有任何问题,如果有人可以帮助我,我将非常感激,
\n\n感谢 !
\n我认为您正在尝试在 user_relation 模型中为 Admin 模型中的 userid 键维护外键。如果是这样,您必须关联定义 sourceKey 和 targetKey。
使用相同的数据类型定义 sourceKey 和 targetKey。
在管理模型中
Admin.belongsTo(user_relation, {
foreignKey: 'userid',
targetKey: 'userid'
});
Run Code Online (Sandbox Code Playgroud)
在用户关系模型中
user_relation.hasMany(Admin, {
as: 'admin',
foreignKey: 'userid',
sourceKey: 'userid'
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20430 次 |
| 最近记录: |