admin管理员组

文章数量:1415467

How I can change name in request object, if I use sequelize. I have two models, and Person model include Name model.

Table in db is Names, and my field name is Names. How I can . change it?

Person.findByPk(
    id,
    include: [{
        model: Name
    }]
});

Name.Model.js

sequelize.define('Name', {
    id: {
        type: type.INTEGER,
        primaryKey: true
    },
    name: {
        type: type.STRING
    }
});

and I get object Person, where one filed is also object

Person = {
   ...
   Names: {
      id: 1,
      name: Piter
   }
}

I want

Person = {
   ...
   name: {
      id: 1,
      name: Piter
   }
}

How I can change name in request object, if I use sequelize. I have two models, and Person model include Name model.

Table in db is Names, and my field name is Names. How I can . change it?

Person.findByPk(
    id,
    include: [{
        model: Name
    }]
});

Name.Model.js

sequelize.define('Name', {
    id: {
        type: type.INTEGER,
        primaryKey: true
    },
    name: {
        type: type.STRING
    }
});

and I get object Person, where one filed is also object

Person = {
   ...
   Names: {
      id: 1,
      name: Piter
   }
}

I want

Person = {
   ...
   name: {
      id: 1,
      name: Piter
   }
}
Share Improve this question asked May 21, 2019 at 21:08 user10053586user10053586 792 silver badges7 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

You should be able to use the as property in your association wherever you defined it. For example your Person Model could look like this.

const Person = sequelize.define('Person', 
    { 
     .
     . //whatever other properties your person has.
     .
     },{});
Person.associate = function(models){
    Person.hasOne(models.Name, {
        as: 'name'
    });
};

Edit: More information regarding this subject can be found here: http://docs.sequelizejs./manual/associations.html#naming-strategy

本文标签: javascriptHow I can change name in including field in sequelizeStack Overflow