postgresql - 属性无法在 Sequelize Model Create 中正确插入

标签 postgresql express sequelize.js

我想插入用户名、密码和角色。但是当我执行我的函数时,角色属性不会被执行。
这是我的迁移文件:

            id: {
                allowNull: false,
                autoIncrement: true,
                primaryKey: true,
                type: Sequelize.INTEGER
            },
            username: {
                type: Sequelize.STRING,
                unique: true,
            },
            password: {
                type: Sequelize.STRING,
                allowNull: false,
            },
            role: {
                type: Sequelize.STRING,
                allowNull: false,
            },
            createdAt: {
                allowNull: false,
                type: Sequelize.DATE
            },
            updatedAt: {
                allowNull: false,
                type: Sequelize.DATE
            }
这是我插入新数据的功能(usermodel.js)
        static register = ({ username, password }) => {
            const encryptedPassword = this.encrypt(password);
            return this.create({ username, password: encryptedPassword, role: 'user' })
        }
这是我执行函数时得到的:
Executing (default): INSERT INTO "UserModel" ("id","username","password","createdAt","updatedAt") VALUES (DEFAULT,$1,$2,$3,$4) RETURNING "id","username","password","createdAt","updatedAt";
有什么我做错了吗?任何帮助将不胜感激,谢谢!

最佳答案

显然,问题出在模型内部。我还没有在模型初始化中定义角色。我通过在模型中添加角色来解决它:

UserModel.init({
        username: DataTypes.STRING,
        password: DataTypes.STRING,
        role: DataTypes.STRING
    }

关于postgresql - 属性无法在 Sequelize Model Create 中正确插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67068908/

相关文章:

sql - 使用 'IN' 运算符组合两个查询时如何提高性能

python - 如何将 JSON 文件导入 Django 数据库?

node.js - 在 PostgreSQL 中对 JsonB 数组进行 Sequelize ORM 查询

sequelize.js - 如何使用 Sequelize 查询嵌套对象,但不将其包含在响应中?

node.js - 使用 Prisma 进行深度嵌套事务写入

python - 如何在django中执行内部连接

javascript - 如何在 Node.js 中使用 Promise 对 API 进行递归请求?

node.js - 如何使用 Busboy 访问 Express 4 req.body 对象

node.js - 运行 Node 应用程序时未捕获、未指定的 'error'

node.js - sequalizejs : Having dot in tableName adds double quotes to it