【问题标题】:Is there any way to convert the fields of raw Sequelize query into camelcase?有没有办法将原始 Sequelize 查询的字段转换为驼峰式?
【发布时间】:2021-10-31 09:09:37
【问题描述】:
const sequelize = new Sequelize('db', 'userName', 'password',{
    dialect: 'postgres',
  define: {
    underscored: true,
    },
    query: {
        raw: true
    }
});

我在数据库和应用程序级别使用带下划线的字段值和 camelCase 字段值。我正在使用 sequelize 查询方法以正确的格式获取数据,但是当我将 Raw Sequelize 查询与sequelize.query() 一起使用时会导致问题,因为它返回带下划线的字段名称。有没有办法改变这种行为?

【问题讨论】:

  • 您是否尝试引用列名? IE。 table.column as ColumnName -> table.column as "ColumnName"
  • 是的,这行得通,但我必须手动写下所有必填字段,所以我正在寻找替代方案。
  • 它依赖于 DBMS 而不是 Sequelize,因为它是一个普通的 SQL,而 Sequelize 根本不修改它。查看您的 DBMS 选项以保持列别名字母大小写不变。

标签: javascript node.js orm sequelize.js


【解决方案1】:
  • 有效。
class TheModel extends Sequelize.Model {

}

TheModel.init({
  userId: {type: DataTypes.INTEGER},
  label: {type: DataTypes.STRING},
}, {
  sequelize: sequelize,
  underscored: true,
}

...

TheModel.rawAttributes['userId'].field    // 'user_id'

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2021-09-25
    相关资源
    最近更新 更多