Как создать элемент, связанный с существующим объектом - PullRequest
0 голосов
/ 21 декабря 2018

Я создал следующие две модели ...

const Account = sequelize.define("account",
{
    id_account: {
        type: Sequelize.INTEGER.UNSIGNED,
        primaryKey: true,
        autoIncrement: true
    },
    name: {...},
    surname: {...},
    username: {...},
    password: {...}
},
{
    name: {
        singular: "Account",
        plural: "Accounts"
    },
    freezeTableName: true,
    hooks: {
        beforeSave: ((account, options) => {
            return bcrypt.hash(account.password, 10)
                .then(hash => {account.password = hash;})
                .catch(err => {throw new Error();});
        })
    }
});

const Genre = sequelize.define("genre",
{
    genre_name: {
        type: Sequelize.STRING(40),
        primaryKey: true
    },
    url_img: {
        type: Sequelize.STRING(40),
        allowNull: false
    }
},
{
    name: {
        singular: "Genre",
        plural: "Genres"
    },
    freezeTableName: true
});

... и следующие ассоциации

Account.Genres = Account.belongsToMany(Genre, {
    through: "AccountGenre",
    foreignKey: "ref_account"
});
Genre.Accounts = Genere.belongsToMany(Account, {
    through: "AccountGenre",
    foreignKey: "ref_genre"
});

Я создал следующие жанры: Rock, Metal, Pop, Hardcore,Теперь я хочу создать аккаунт и связать его 3 жанра.Следующий код создает учетную запись, но не создает связь с существующими жанрами в таблице AccountGenre:

const genresArray = ["Rock", "Metal", "Pop"];
const account = {...} // I have an object with account properties
Account.create({
    name: account.name,
    surname: account.cognome,
    username: account.nome_utente,
    password: account.password,
    genres: genresArray
}, {
    include: [Genre]
});

Что не так в этом коде?

1 Ответ

0 голосов
/ 22 декабря 2018

Проблема здесь в том, что вы дали ссылку на ассоциацию во множественном числе «Жанры».Вам нужно то же самое в операторе включения.

include: [Жанры]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...