javascript - Sequelize - 将字段映射到模型定义中的字段别名

标签 javascript node.js model sequelize.js

我正在定义一个 Sequelize 模型来映射数据库中现有表中的字段。但是,表中的字段名称很长,对开发人员不友好。

是否可以将数据库字段名称映射到模型定义中的别名,以便我的服务具有更适合开发人员使用的模型属性名称?

示例:

这个...

// Horrible field names
module.exports = (sequelize, DataTypes) =>
  sequelize.define('Transaction', {
    f_curr_finaccount__amount: DataTypes.DECIMAL,
    f_curr_finaccount__tx_type: DataTypes.STRING,
    f_finaccount__currency_iso_id: DataTypes.STRING,
    f_lex_finaccount__tx_atomic_status: DataTypes.STRING
  }, {
    schema: 'fins',
    tableName: 'fins_financialaccounttransaction',
    timestamps: false
  })

……变成……
// Developer-friendly field names
module.exports = (sequelize, DataTypes) =>
  sequelize.define('Transaction', {
    amount: {
      type: DataTypes.DECIMAL,
      fieldName: 'f_curr_finaccount__amount'
    },
    type: {
      type: DataTypes.STRING,
      fieldName: 'f_curr_finaccount__tx_type'
    },
    currency: {
      type: DataTypes.STRING,
      fieldName: 'f_finaccount__currency_iso_id'
    },
    status: {
      type: DataTypes.STRING,
      fieldName: 'f_lex_finaccount__tx_atomic_status'
    }
  }, {
    schema: 'fins',
    tableName: 'fins_financialaccounttransaction',
    timestamps: false
  })

最佳答案

与您所做的完全一样,但属性的名称只是 field .包括外键在内的所有列都是一样的。

// Developer-friendly field names
module.exports = (sequelize, DataTypes) =>
  sequelize.define('Transaction', {
    amount: {
      type: DataTypes.DECIMAL,
      field: 'f_curr_finaccount__amount'
    },
    type: {
      type: DataTypes.STRING,
      field: 'f_curr_finaccount__tx_type'
    },
    currency: {
      type: DataTypes.STRING,
      field: 'f_finaccount__currency_iso_id'
    },
    status: {
      type: DataTypes.STRING,
      field: 'f_lex_finaccount__tx_atomic_status'
    }
  }, {
    schema: 'fins',
    tableName: 'fins_financialaccounttransaction',
    timestamps: false
  })

关于javascript - Sequelize - 将字段映射到模型定义中的字段别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56571134/

相关文章:

在 Keras 中绘制模型

php - yii2 更新验证规则

php - javascript 在 onclick 处包含文件

javascript - 为什么使用 cloneNode() 创建多个音频文件会阻止我控制音频源的属性以及如何覆盖它

javascript - 字符串的 indexOf 方法如何在 JavaScript 中工作

javascript - 使用 sinon 进行 Node 、单元测试和模拟

android - 在android中使用socket io进行身份验证以用于聊天应用程序

node.js - 部署到 Heroku 时已弃用 Meteor Fibers

php - CakePHP 约定名称或连接的名称

javascript - 使用selenium使用xpath输入多个元素