2017-08-29 59 views
0

我有一個userscolors表。在我的示例中,users表中已存在用戶行。我希望能夠爲該現有用戶添加一種顏色(或者,連接一種顏色)。Sequelize.js - 添加一個項目到一個表格,連接到一個用戶在不同的表

這是該協會是如何設置的:

db.color.belongsTo(db.user); 
db.user.hasMany(db.color); 

這樣用戶就可以連有許多不同的顏色。

要將顏色添加到我已經嘗試了用戶執行以下操作:

db.color.create({ 
    colorName: 'blue', 
    include: [{ 
     model: db.user, 
     where: { 
      id: 12454 
     } 
    }] 
}) 

雖然這增加了新的色彩行至colors表,它不會將它連接到指定的用戶;它給出了這樣的結果:

{"id":1,"colorName":"blue","userId":null} 

我怎麼這個顏色連接到指定的用戶在users表?

回答

3

請嘗試以下

參考文獻:Sequelize documentation

let UserInfo = user.find({ 
    where: {id: 12454} 
}); 
let addColor = color.create({name: "blue"}); 

sequelize.Promise.all([UserInfo, addColor]).spread((User, Color)=> { 
    return Color.setUser(User); 
}); 

connection.Promise is a bluebird Object which is exposed by Sequelize.

+1

你發現查詢需要這樣的大括號:'db.user.find({})'。即使是這樣,這也行不通。只是返回一個錯誤。 – MonkeyOnARock

+0

@MonkeyOnARock我已經更新了答案。請檢查現在 –

+0

所以它會將新顏色插入到'color'表中...但userId仍然是空白的......當運行Promise.all時,它會給出以下錯誤:'Can not讀取未定義的屬性'setUser' – MonkeyOnARock

相關問題