node.js - 使用 sequelize newCourse.setCategory 不是函数
问题描述
我正在对课程和类别具有 mtm 关系的课程进行粗略操作,我的模型是 2 个单独的文件
课程模式
const Sequelize = require('sequelize')
const sequelize = require('../database/connection')
const UserModel = require('./User')
const CategoryModel = require('./Category')
const Course = sequelize.define('Course', {
id: {
type: Sequelize.UUIDV4,
primaryKey: true,
defaultValue: Sequelize.UUIDV1
},
name: Sequelize.STRING(15),
description: Sequelize.TEXT,
points: Sequelize.INTEGER,
image: Sequelize.STRING,
createdAt: Sequelize.DATE,
updatedAt: Sequelize.DATE,
}, {
tableName: 'courses'
})
Course.belongsToMany(UserModel, { through: "CoursesUsers" });
Course.belongsToMany(CategoryModel, { through: "CategoryCourses" });
CategoryModel.belongsToMany(Course, { through: "CategoryCourses" });
module.exports = Course
类别模型
const Sequelize = require('sequelize')
const sequelize = require('../database/connection')
const Category = sequelize.define('Category', {
id: {
type: Sequelize.UUIDV4,
primaryKey: true,
defaultValue: Sequelize.UUIDV1
},
name: Sequelize.STRING(15),
createdAt: Sequelize.DATE,
updatedAt: Sequelize.DATE,
}, {
tableName: 'categories'
})
module.exports = Category
类别课程模式
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class CategoryCourse extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
// define association here
}
};
CategoryCourse.init({
id: {
type: Sequelize.UUIDV4,
primaryKey: true,
defaultValue: Sequelize.UUIDV1
},
courseId: DataTypes.UUID,
categoryId: DataTypes.UUID
}, {
sequelize,
modelName: 'CategoryCourse',
});
return CategoryCourse;
};
在我的控制器中,我正在创建新课程,然后调用 newCourse.setCategory(body.categories)
设置类别,但我收到此错误 newCourse.setCategory is not a function
解决方案
推荐阅读
- javascript - React/React-Hooks:需要在 React Hooks 组件中运行 onLoad 函数
- angular - 故事书中的RouterLink?
- c# - 无法在 DbSet 测试替身上调用 AddRange
- ios - 在 Firebase 测试实验室测试 APNS
- vb.net - 如何使用 VB.net 下载 YouTube 视频
- google-apps-script - OnChange 在某些工作表中更改时触发,而不是在工作簿的任何工作表中
- facebook - 如何将标题和描述等信息添加到帖子中的链接
- ios - 如何在数据库中保存 Apple 应用内购买的收据?
- c# - 尝试序列化异常时忽略自定义解析器
- reactjs - 截取全日历时间网格视图的正确方法