Node.js w / Bookshelf;使用ID数组设置多对多关系的值

时间:2015-03-09 21:27:39

标签: javascript node.js express bookshelf.js knex.js

我正在使用带有Bookshelf的Node.js来设置API。请求中的JSON看起来像这样

{
  conversation:  {
    user_ids: [1, 2, 3, 4]
  }
}

会话对象如下所示:

var Conversation = storeManager.bookshelf.Model.extend({
  tableName: 'conversations',

  users: function() {
    this.belongsToMany(User)
  }

})

用户看起来像这样:

var User = storeManager.bookshelf.Model.extend({
  tableName: 'users',

  conversations: function() {
    return this.belongsToMany(Conversation)
  }
})

数据库有一个会话和用户表以及一个具有user_idconversation_id字段的conversations_users表。

所以我一直在阅读文档,我正在努力弄清楚如何创建一个与具有给定ID的现有用户有关系的会话对象。

到目前为止,这是我在控制器中的内容

ConversationController.prototype.create = function(req, res, next) {
  // Create the conversation
  Conversation.forge().set('users', req.body['conversation']['user_ids']).save().then(function(model) {
    req.conversation = model
    next()
  }).catch(function(err) {
    res.status(400).send(err)
  })
}

1 个答案:

答案 0 :(得分:1)

您需要在集合中使用add方法,如下所示:

Conversations_Users.add({userId:1,conversation_id:1});

然后致电

Conversations_Users.save()