Bookshelf JS undefined throughTableName

时间:2014-03-01 16:14:32

标签: javascript mysql node.js

我正试图从filenames表格中通过files表格获取attachments作为帖子。

附件表:

post_id, file_id

文件表:

id, filename

帖子表

attachments = 1,2,3

post表中的attachments列包含attachment_id列表。 我想获得这些1,2,3附件的每个文件名。

所以我建立了关系,

我的帖子模型:

require('./file');
require('./attachment');

...

attachments: function() {
  return console.log(this.hasMany('File').through('Attachment'));
},

console.log显示:

{ type: 'hasMany',
 target: 
  { [Function]
    extend: [Function],
    include: [Function],
    __super__: [Object],
    forge: [Function],
    collection: [Function] },
 targetTableName: 'files',
 targetIdAttribute: 'id',
 foreignKey: undefined,
 parentId: 1,
 parentTableName: 'posts',
 parentIdAttribute: 'id',
 parentFk: 1,
 throughTarget: 'Attachment',
 throughTableName: undefined,
 throughIdAttribute: undefined,
 throughForeignKey: undefined,
 otherKey: undefined },

第一个问题是,为什么不检测附件表名?我已经设置了它:

var Attachment = Bookshelf.Model.extend({
  tableName: 'attachments'
});

module.exports = Bookshelf.model('Attachment', Attachment);

最后当我查询页面时,它只返回{}为什么?只是一个初学者。

我也在所有模型文件上使用注册表

Bookshelf.plugin('registry');

1 个答案:

答案 0 :(得分:0)

这是一个错误,已在0.6.6版本中修复。