繁体   English   中英

无法使用 TypeScript 导入 Sequelize 模型:错误:未传递 Sequelize 实例

[英]Can't import Sequelize models with TypeScript: Error: No Sequelize instance passed

我的user.model.ts是:

@Table
export class User extends Model<User> {
    @Column({ allowNull: false })
    firstName: string;

    @Column({ allowNull: false })
    lastName: string;
...

当我尝试导入它时:

    const sequelize = new Sequelize(DB_CREDENTIALS_PARSED.database, DB_CREDENTIALS_PARSED.username, DB_CREDENTIALS_PARSED.password, { dialect: 'postgres' })
    const modelFile = require(path.join(modelPath, 'user.model')).User.init({ sequelize })

    console.log(modelFile)

我收到一个错误: Error: No Sequelize instance passed

我究竟做错了什么?

sequelize 实例必须在init方法的第二个参数中传递

const User = require(path.join(modelPath, 'user.model'));
const sequelize = new Sequelize(
    DB_CREDENTIALS_PARSED.database,
    DB_CREDENTIALS_PARSED.username,
    DB_CREDENTIALS_PARSED.password, {
        dialect: 'postgres'
    }
)
User.init(modelAttributesObject, { sequelize })

但是当您使用续集 TypeScript 时,您可以使用实例初始化模型

const User = require(path.join(modelPath, 'user.model'));
const sequelize = sequelize = new Sequelize({
    dialect: 'postgres',
    database: DB_CREDENTIALS_PARSED.database,
    username: DB_CREDENTIALS_PARSED.username,
    password: DB_CREDENTIALS_PARSED.database,
    models: [User]
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM