0
我想獲取與Sequelizejs v3的Nodejs連接表上渴望。sequelizejs渴望獲取許多到很多
所以,1個標籤可以屬於許多圖像,並且許多圖像可以有多個標籤。
標籤1 - > MS ImageTag中號< - 1圖片
我得到Unhandled rejection Error: Tag is not associated to ImageDetails
當我試圖EXCUTE查詢。
function getImagesFromAlbum(albumid, callback, errCallback){
ImageDetails.findAll({where: { AlbumId: albumid }, include: [{model: Tag}]}).then((data) => {
return callback(data)
}).catch((err) => {
return errCallback(err)
})
}
的預期收益結果應根據ALBUMID是數據,與該圖像的assiociate標籤
這裏是加入
ImageDetails.belongsToMany(Tag, { as: { singular: "tag", plural: "tags" }, through: { model: ImageTag, unique: false }, foreignKey: "ImageId"})
Tag.belongsToMany(ImageDetails, { as: { singular: "image", plural: "images" }, through: { model: ImageTag, unique: false }, foreignKey: "TagId"})
這裏是模型設計
的關係標籤模型
const model = {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: Sequelize.STRING
}
}
const name = "Tag"
ImageTag模型(連接表)
const model = {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
}
}
const name = "ImageTag"
ImageDetails模型
import { Sequelize, db } from "../config/MySqlConfiguration"
const model = {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
ImageLocation: {
type: Sequelize.STRING
},
originalName: {
type: Sequelize.STRING
}
}
const name = "ImageDetails"
*注sequelize.define特意省略。