У меня есть связь m: n между двумя таблицами с секвенированием, например:
база данных
//USER
db.user.hasMany(db.cv);
db.cv.belongsTo(db.user);
//SKILL
db.skill.belongsToMany(db.cv, { through: 'cv_skill' });
export const db = {
Sequelize: Sequelize,
sequelize: sequelize,
user: User(sequelize, Sequelize),
cv: CV(sequelize, Sequelize),
skill: Skill(sequelize, Sequelize),
summary: Summary(sequelize, Sequelize), };
модель cv
export const CV = function(sequelize, Sequelize) {
return sequelize.define("cv", {
title: {
type: Sequelize.STRING
}
});
};
модель умения
export const Skill = function(sequelize, Sequelize) {
return sequelize.define("skill", {
name: {
type: Sequelize.STRING
},
});
};
контроллер
import { db } from '../config/database';
const SKILL = db.skill;
const CV = db.cv;
import regeneratorRuntime from "regenerator-runtime";
export const createSkill = (req, res) => {
const { id } = req.params;
SKILL.findOrCreate({
where: { name: req.body.name },
}).then((skill, created) => {
CV.setSkill(skill, id);
}).catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while retrieving skill."
});
});
};
NodeJS возвращает это умение .addCv, умение .setCv не является функцией. Я не могу найти какой-либо рабочий способ добавить связь между cv и навыком.