javascript - 我如何更改 sequelize 中包含字段的名称?

标签 javascript mysql sequelize.js

如果我使用 sequelize,我如何更改请求对象中的名称。 我有两个模型,Person 模型包括 Name 模型。

db中的表是Names,我的字段名是Names。 我怎么能 。改变它?

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

名称.Model.js

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

我得到对象 Person,其中一个字段也是对象

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

我要

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

最佳答案

无论您在哪里定义关联,您都应该能够在关联中使用 as 属性。例如,您的人物模型可能如下所示。

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

编辑:有关此主题的更多信息可在此处找到:http://docs.sequelizejs.com/manual/associations.html#naming-strategy

关于javascript - 我如何更改 sequelize 中包含字段的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56246399/

相关文章:

php - Laravel 加入最新的 pressureMap 入口

mysql - 在执行 "storage account"时无法使用我创建的 "file share"和 "docker compose up"

node.js - VSCode 错误地将 Sequelize findOne 和 findAll 的返回类型推断为 any

javascript - 如何从http服务获取错误

具有相同类的 JavaScript 查询选择器必须单击两次

javascript - Firebase 无法获取我的身份验证输入值

php - 允许在社交媒体上共享受密码保护的页面?

node.js - 使用 sequelize 在 postgres 中添加批量记录

node.js - 使用ES6模板字符串查询sql数据库

javascript - 如何更改我的 js 代码以使菜单正常工作