BookshelfJS - 如何使用相关模型创建/插入模型?

时间:2015-10-04 22:41:26

标签: node.js orm bookshelf.js

我知道这是超级基本的东西,但我似乎无法让它发挥作用。也许我的Google-fu很糟糕。我有用户和时间表,我想在创建时间轴时将时间轴与其创建用户相关联。我无法找到使这种关联发生的最佳方法。我要么无法访问ID属性,要么在创建时间轴时未设置它。我不希望将时间轴创建嵌入到保存用户之中,因为我将在几个不同的对象之间做一堆复杂的关系。这就是我到目前为止所拥有的:

型号:

var Timeline = bookshelf.Model.extend({

  tableName: 'timelines',

  creator: function() {
    console.log("timeline model creator function called");
    return this.belongsTo(User);
  }

}, {
});

var User = bookshelf.Model.extend({

  tableName: 'users',

  timelines: function() {
    return this.hasMany(Timeline);
  },
}, {});

Instantion:

var user3 = new User({
  username: 'user3',
  email: 'email3@example.com',
  password: 'password1'
}).save();

var timeline3 = new Timeline({
    name: 'timeline3',
    creator: user3,
    start_date: '1900-01-01 00:00:00',
    end_date: '1950-01-01 23:59:59',
    time_scale: 1
}).save();

看起来user3是一个promise而不是模型实例,因为我得到一个错误,指出给创建者的给定值不是一个有效的整数。它具有isFulfilled和isRejected属性。

如何保存/插入新模型实例及其与另一个模型实例的关系?

0 个答案:

没有答案