2017-01-14 4 views
0

このプロジェクトではsqliteを使用して続行します。私は通常のsqlに慣れていますが、このメソッドはNode.jsにAPIを作成するのに便利です。後継の名前が変更された外部キーの関連付け

ユーザーとグループの2つのモデルがあります。グループには多くのユーザーがいますが、1人は教師です。私は、多対多を扱うために別々のUserInGroupテーブルを持っていますが、教師の1対多の関係のために、関係 'teacher'の名前を変更しました(そしてその属性はteacherIdです)。

db.group.belongsTo(db.user, {as: 'teacher'}); 
db.user.hasMany(db.group, {as: 'teacher'}); 

私がログインしてグループオブジェクトを作成しようとすると、それは明らかに存在しないユーザーIDフィールドを作るしようとします。 userIdをteacherIdフィールドに入れるにはどうしたらいいですか?

app.post('/groups', middleware.requireAuthentication, function(request, response){ 

    var body = _.pick(request.body, 'name', 'description'); 
    body.description = body.description.trim(); 
    body.name = body.name.trim(); 

    db.group.create(body).then(function(group){    
     request.user.addGroup(group).then(function(){ 
      return group.reload(); 
     }).then(function(group){ 
      response.json(group.toJSON()) 
     }) 
    }, function (e) {         
     response.status(400).json(e); 
    }) 
}); 

私も、送信者と受信者のための2つのユーザーIDを取る必要がある「メッセージ」オブジェクトを管理することになるので、私は、単純にフィールドの名前を変更する必要はありません。私はdb.js内のすべてのフィールドを定義しましたが、どのようにそれらを埋めるのかはわかりません。

答えて

関連する問題