node.js - 无法使用 TypeScript : Error: No Sequelize instance passed 导入 Sequelize 模型

标签 node.js sequelize.js

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

但是当您使用 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]
});

关于node.js - 无法使用 TypeScript : Error: No Sequelize instance passed 导入 Sequelize 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61599849/

相关文章:

node.js - 使用 PHP/MySQL/JS 进行类似 facebook 聊天的后端服务器软件?

javascript - 如何从 yarn.lock 知道当前安装包的版本

node.js - Node.js Express 是否包含中间件列表?

node.js - 更改 Sequelize 时区

node.js - Node JS : Date. not() 采用服务器启动时间而不是 Mongoose 中的当前时间

node.js - Sequelize 多对多关系不显示 GET 请求的结果

reactjs - 更新用户信息 sequelize express

javascript - 返回带有格式化日期的额外列

javascript - sequelize 中的计数关系返回 1 而不是 0

mysql - 如何获取今天的 sequelize js 记录