2017-01-14 6 views
0

Этот проект использует sqlite и sequelize. Я привык к нормальному sql, но этот метод выглядит полезным для создания API в Node.js.Переименованные ассоциации внешних ключей в sequelize

У меня есть две модели: пользователь и группа. В группе много пользователей, но один из них - учитель. У меня есть отдельная таблица UserInGroup для обработки множества-ко-многим, но для отношения «один-ко-многим» учителя я переименовал отношение «учитель» (и поэтому атрибут - teacherId).

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

Когда я войти и попытаться создать объект групповой, он пытается сделать поле USERID, которое, очевидно, не существует. Как я могу заставить его поместить 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); 
    }) 
}); 

Я не хочу просто переименовать поле, потому что я также будет управление «сообщение» объект, который нужно взять два UserIds для отправителя и получателя. Я определил все поля в db.js, но я не уверен, как их заполнять.

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^