Node.js 如何使sequelize模型分离文件,但保持相同的sequelize连接
各位。我对使用nodejs的续集ORM非常陌生。 我刚刚分别为模型创建了两个文件,我还分离了sequelize.js以连接到数据库 问题是,当我在模型(文件)之间建立关联(自关联工作正常)时,出现了一个错误 ****“hasMany调用的对象不是Sequelize.Model的子类” 我试图解决这个问题,但直到我把每个模型都放在同一个文件中才起作用。因此,我意识到每个型号都必须使用通用的sequelize连接。 没有sequelize cli,有没有办法解决这个问题(我不想使用sequelize cli) 下面是我的代码 非常感谢, sequelize.jsNode.js 如何使sequelize模型分离文件,但保持相同的sequelize连接,node.js,mariadb,sequelize.js,Node.js,Mariadb,Sequelize.js,各位。我对使用nodejs的续集ORM非常陌生。 我刚刚分别为模型创建了两个文件,我还分离了sequelize.js以连接到数据库 问题是,当我在模型(文件)之间建立关联(自关联工作正常)时,出现了一个错误 ****“hasMany调用的对象不是Sequelize.Model的子类” 我试图解决这个问题,但直到我把每个模型都放在同一个文件中才起作用。因此,我意识到每个型号都必须使用通用的sequelize连接。 没有sequelize cli,有没有办法解决这个问题(我不想使用sequelize
const config = require("config");
const { Sequelize } = require("sequelize");
const sequelize = new Sequelize(
config.get("database"),
config.get("user"),
config.get("cipher"),
{
dialect: "mariadb",
timezone: "Asia/Bangkok",
}
);
module.exports = sequelize;
user.js
const { DataTypes, Model } = require("sequelize");
const sequelize = require("./sequelize");
const Position = require("./position");
class User extends Model {}
User.init(
{
uuid: {
type: DataTypes.UUID,
allowNull: false,
defaultValue: DataTypes.UUIDV4,
},
title: {
type: DataTypes.STRING,
allowNull: false,
},
firstname: {
type: DataTypes.STRING,
allowNull: false,
},
lastname: {
type: DataTypes.STRING,
allowNull: false,
},
phone: {
type: DataTypes.STRING,
allowNull: true,
},
email: {
type: DataTypes.STRING,
allowNull: true,
validate: {
isEmail: true,
},
},
imgurl: {
type: DataTypes.STRING,
allowNull: true,
},
login: {
type: DataTypes.STRING,
allowNull: false,
},
passphase: {
type: DataTypes.STRING,
allowNull: false,
},
status: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 1,
},
},
{
sequelize,
modelName: "User",
tableName: "users",
timestamps: true,
}
);
User.belongsToMany(User, {
as: "CreatedUser",
foreignKey: "user_id",
through: "UserCreator",
});
User.belongsToMany(User, {
as: "Creator",
foreignKey: "creator_id",
through: "UserCreator",
});
User.belongsToMany(User, {
as: "ModifiedUser",
foreignKey: "user_id",
through: "UserModifier",
});
User.belongsToMany(User, {
as: "Modifier",
foreignKey: "modifier_id",
through: "UserModifier",
});
User.belongsTo(Position);
module.exports = User;
position.js
const { DataTypes, Model } = require("sequelize");
const sequelize = require("./sequelize");
const User = require("./user");
class Position extends Model {}
Position.init(
{
uuid: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
},
name: {
type: DataTypes.STRING,
allowNull: false,
},
status: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 1,
},
},
{
sequelize,
modelName: "Position",
tableName: "postions",
timestamps: true,
}
);
Position.hasMany(User, {
foreignKey: {
type: DataTypes.UUIDV4,
allowNull: false,
},
});
module.exports = Position;
sequelize.authenticate()代码在哪里?它在另一个文件中。