如何在Sequelize结果中重命名实体名称?

时间:2019-06-05 05:41:45

标签: node.js express sequelize.js

如何在续集结果中更改实体名称?

邮递员结果     “ createDate”:“ 2019-05-30”,     “ companyHeader.companyName”:“ Testcomp”

我想重命名'companyHeader.companyName'->'companyName'

repository.js

return await models.userHeader.findAndCountAll({
// join t_userheader and t_companyheader with associate
include: [
{
model: models.companyHeader,
attributes: ["companyName"],
// as : 'company'
},
],
attributes: ["id","userId", "userName", "usedCode", "createDate"],
offset: offset,
limit: pageAmount,
order : [['createdate','DESC']],
raw : true
});

2 个答案:

答案 0 :(得分:0)

您需要像这样在第一个模型的属性上使用sequelize.literal

return await models.userHeader.findAndCountAll({
  include: [{
    model: models.companyHeader,
    attributes: ["companyName"],
    // as : 'company'
  }],
  attributes: [
    "id",
    "userId", 
    "userName", 
    "usedCode", 
    "createDate",
    [sequelize.literal('"companyHeader"."companyName"'), 'companyName']
  ],
  offset: offset,
  limit: pageAmount,
  order : [['createdate','DESC']],
  raw : true
});

答案 1 :(得分:0)

    module.exports = (sequelize, DataTypes) => {
        const userHeader = sequelize.define("userHeader",{
        id: {
        type: DataTypes.UUID,
        allowNull: false,
        unique: true,
        primaryKey: true,
        autoIncrement: true,
        defaultValue : sequelize.literal('uuid_generate_v4()'),
        },
        userId: {
        type: DataTypes.STRING(),
        field : 'userid'
        },
        password: {
        type: DataTypes.STRING(),
        allowNull: false,
        field : 'password'
        },
        userName: {
        type: DataTypes.STRING(),
        allowNull: true,
        field : 'username'
        },
        usedCode: {
        type: DataTypes.INTEGER,
        allowNull: false,
        field : 'usedcode'
        },
        companyId: {
        type: DataTypes.UUID,
        allowNull: false,
        field : 'companyid'
        },
        createDate: {
        type: DataTypes.DATE(3),
        allowNull: false,
        defaultValue: sequelize.literal("CURRENT_TIMESTAMP(3)"),
        field : 'createdate'
        }
        userHeader.associate = function(models) {
        // associations
        userHeader.belongsTo(models.companyHeader,{
          foreignKey: 'companyId',
          targetKey : 'id',
          // as : 'company'
        })

      };
return userHeader;
};