Sequelize nodejs включенный псевдоним имени атрибутов модели - PullRequest
0 голосов
/ 07 мая 2020

в моем контроллере у меня есть включенные модели стран, которые должны возвращать необработанные данные как CON.name.CON - это псевдоним для включенной модели. Я хочу изменить название столбца. CON.name to countryName

Код

let include = [{ 
  model: country , all:true }]

   const Addr = await Address.findAll({
    order: [['isDefaultAddress', 'DESC']],
    where: {
      Id: parseInt(params.req.body.id),
      status: 1,
    },         
    include:include,
    raw:true,
    attributes:{ exclude: [], include:['con.name']}

Ответ

CON.createdAt: "2020-04-02T12:35:52.205Z"
CON.id: 1
CON.name: "Afghanistan"
CON.updatedAt: "2020-04-02T12:35:52.205Z"

Ожидаемый результат

countryCreatedAt: "2020-04-02T12:35:52.205Z"
countryId: 1
countryName: "Afghanistan"
countryUpdatedAt: "2020-04-02T12:35:52.205Z"

Ответы [ 2 ]

1 голос
/ 07 мая 2020

используйте атрибуты таким образом:

  attributes: [['con.id','countryId'],
               ['con.name', 'countryName'],
               ['con.createdAt','countryCreatedAt'],
               ['con.updatedAt','countryUpdatedAt']
              ] 
0 голосов
/ 07 мая 2020

правильный ответ, который я понял ...

 attributes: {exclude: [],
             include: [[Sequelize.col('con.name'), 'countryName'], 
              [Sequelize.col('st.name'), 'stateName']]},
...