最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

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

IT培训 admin 15浏览 0评论

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

我的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]
});

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

我的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]
});
发布评论

评论列表 (0)

  1. 暂无评论