使用sequlise,在数据库中定义的下划线字段,怎么实现输出的时候字段都是驼峰形式
发布于 3 个月前 作者 1134506391 534 次浏览 来自 问答

underscored

underscored为true或者flase都尝试过了

field也不行

sql

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `username` varchar(255) DEFAULT NULL COMMENT '用户名',
  `password` varchar(255) DEFAULT NULL COMMENT '用户密码',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL COMMENT '更改时间',
  `role_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COMMENT='用户表';


定义

'use strict';

module.exports = app => {
    const { INTEGER, STRING, DATE } = app.Sequelize;
    const User = app.model.define('user', {
        id: {
            type: INTEGER,
            primaryKey: true,
            autoIncrement: true,
        },
        username: {
            type: STRING,
        },
        password: {
            type: STRING,
        },
        created_at: DATE,
        updated_at: DATE,
        role_id: {
            type: INTEGER,
            field: 'roleId',
        },
    }, {
        freezeTableName: true,
        underscored: false,
    });
    User.associate = function() {
        app.model.User.belongsTo(app.model.Role, { as: 'role' });
    };
    return User;
};

报错

image.png

2 回复

改为这样

const User = app.model.define(‘user’, { roleId: { type: INTEGER, field: ‘role_id’, }, })

@supperchong 感谢,有点问题再请教一下

  1. 一起查出了role_id,roleId,能不能过滤掉role_id
  2. 每个字段都要设置了,能不能统一设置一个表,或者整个数据库
回到顶部