このプロジェクトでは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内のすべてのフィールドを定義しましたが、どのようにそれらを埋めるのかはわかりません。