Bookshelf JS:"this.hasOne"不是一个函数

nob*_*een 2 javascript node.js bookshelf.js

试图通过最简单的书架示例,但在fetch语句中使用"withRelated"无法超越一对多的关系.这是我的代码(隐藏了一些东西)代表从B到A的一对多.

"use strict";
var knex = require('knex') ({
    client: 'mysql',
    connection: {
        host: '127.0.0.1',
        user: '*******',
        password: '*******',
        database: '*******',
        charset: 'utf8'
    }
});

var bookshelf = require('bookshelf')(knex);

var A, B

A = bookshelf.Model.extend({
    tableName: 'A',
    propB: () => { 
         return this.hasOne(B, 'A_id') 
    }

B = bookshelf.Model.extend({
    tableName: 'B',
    propA: () => { return this.belongsTo(A, 'A_id') }
})

A.forge().fetch({withRelated: ['propB']}).then(function(x){console.log(x)})
Run Code Online (Sandbox Code Playgroud)

然而,运行这个我得到"Unhandled rejection TypeError:this.hasOne不是一个函数",引用A中的this.hasOne.如果我删除"withRelated"子句,它会按预期运行并返回正确的条目数据库.

为什么我收到此错误?更多信息:Nodejs:v4.4.1 Bookshelf:v0.9.4

Vad*_*dim 6

您正在使用this从其父上下文继承的箭头函数.您需要使用function() {}语法,以便书架可以this正确绑定.