node.js - Sequelize 不呈现结点(查找表)值

标签 node.js express sequelize.js

我在 Node.js Web 应用程序中使用 Sequelize。我有一个多对多的关系并且正在使用查找表。生成的 SQL 看起来不错,但是当我开始使用它时,只显示“组”表中的值。

这是我设置模型的方式:

//groups
m.User.hasMany(m.Group, { as: 'UserGroups', joinTableName: 'group_users', foreignKey: 'user_id' });
m.Group.hasMany(m.User, { as: 'UserGroups', joinTableName: 'group_users', foreignKey: 'group_id' });

这是由 sequelize 运行的原始 sql:
SELECT `group`.`id`, `group_name`, `created_date`, `description`, `rights`, `join_date` FROM `group`, `group_users` WHERE `group_users`.`user_id`=1 AND `group_users`.`group_id`=`group`.`id`;    

这是我的代码:
user.getUserGroups({ attributes : [ "group.id", "group_name", "created_date", "description", "rights", "join_date" ] }).success(function (groups) {
  content.groups = groups;
  console.log(groups);
});

这是 console.log'd 的内容:
[ { dataValues:
     { id: 16,
       group_name: 'chris\'s group',
       created_date: Sun Dec 16 2012 17:36:46 GMT+0000 (GMT),
       description: 'test test test',
       rights: 4,
       join_date: Tue Oct 15 2013 13:49:05 GMT+0100 (BST) },
    __options:
     { timestamps: false,
       createdAt: 'createdAt',
       updatedAt: 'updatedAt',
       deletedAt: 'deletedAt',
       touchedAt: 'touchedAt',
       instanceMethods: [Object],
       classMethods: [Object],
       validate: {},
       freezeTableName: true,
       underscored: true,
       syncOnAssociation: true,
       paranoid: false,
       whereCollection: [Object],
       schema: null,
       schemaDelimiter: '',
       language: 'en',
       defaultScope: null,
       scopes: null,
       foreignKeyConstraint: true
       ....

这是在 View 中呈现的原始 JSON:
 [{"id":16,"group_name":"chris's group","created_date":"2012-12-16T17:36:46.000Z","description":"test test test"},

为什么我看不到“rights: 4”正在渲染,因为这肯定会被带回来?

最佳答案

由于 rights 函数根据模型定义中定义的列名进行转换,您能否检查一下您是否在 sequelize 模型定义中定义了 toJSON()

关于node.js - Sequelize 不呈现结点(查找表)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23879079/

相关文章:

javascript - Node.js Bluebird - promise 错误返回为 null

node.js - 迪尔德 : Symbol not found: _napi_module_register

javascript - Locomotive JS - 如何访问另一个 Controller 方法

ajax - 我应该在通过 .sendFile() 响应之前检查文件是否存在吗?

node.js - 如何使用jquery或angularjs在jade模板中创建弹出窗口

mysql - 弃用警告 : A boolean value was passed to options. 运算符别名。这是 v5 的无操作,应删除

javascript - 为涉及 DataTypes.JSON 的 Sequelize 创建种子文件时出错

node.js - 我应该在应用程序级别应用速率限制还是使用 Nginx 的功能?

node.js - 错误 : Request unsafe for browser client domain: dialogflow.

sequelize.js - 使用 sequelize cli 运行多个命令