Javascript Sequelize不创建set/get/add方法

Javascript Sequelize不创建set/get/add方法,javascript,sequelize.js,Javascript,Sequelize.js,我不确定我是否遗漏了什么,但是Sequelize似乎没有创建从belongAsmany(…)关联派生的方法(在本例中为setRequest、getRequest、addRequest) 我试图建立一种N:N关系(与食物和请求)。因此,一个请求可以有许多食物,而食物可以有许多请求 我得到的错误是: (节点:4504)未处理的PromisejectionWarning:TypeError:food.addRequests不是函数 型号 请求模型: const{Model,DataTypes}=req

我不确定我是否遗漏了什么,但是Sequelize似乎没有创建从belongAsmany(…)关联派生的方法(在本例中为setRequest、getRequest、addRequest)

我试图建立一种N:N关系(与食物和请求)。因此,一个
请求
可以有许多
食物
,而
食物
可以有许多
请求

我得到的错误是:

(节点:4504)未处理的PromisejectionWarning:TypeError:food.addRequests不是函数

型号

请求模型:

const{Model,DataTypes}=require('sequelize');
类请求扩展模型{
静态初始化(sequelize){
super.init({
//格式
客户端:DataTypes.STRING(70),
处理时间:DataTypes.INTEGER,
时间:DataTypes.INTEGER,
支付时间:DataTypes.INTEGER,
//有一张桌子
}, {
//连接
续集
})
}
静态助理(模型){
this.belongsTo(models.Table,{foreignKey:'fk_Table',as:'Table',targetKey:'id'});
this.belongsTo(models.Employee,{foreignKey:'fk_Employee',as:''});
this.belongtomany(models.Food,{foreignKey:'fk_request',通过:'requests_foods',as:'request'});
}
}
module.exports=请求;
食物模式:

const{Model,DataTypes}=require('sequelize');
类食物扩展模型{
静态初始化(sequelize){
super.init({
//格式
名称:DataTypes.STRING(40),
image:DataTypes.STRING,
价格:DataTypes.FLOAT,
存储:DataTypes.INTEGER,
//被许多请求使用
}, {
//连接
续集,
表名:“食品”
})
}
静态助理(模型){
//通过:用于联接数据的表
//foreignKey:哪列请求用于引用模型。请求
this.belongtomany(models.Request,{foreignKey:'fk_food',通过:'requests_foods',as:'foods');
this.belongsTo(models.Category,{foreignKey:'fk_Category',as:'Category'});
}
}
模块出口=食品;
数据透视表:

“严格使用”;
module.exports={
up:(查询接口,续集)=>{
返回queryInterface.createTable('requests\u foods'{
身份证:{
类型:Sequelize.INTEGER,
自动递增:真,
primaryKey:没错,
allowNull:错,
},
fk_请求:{
类型:Sequelize.INTEGER,
allowNull:错,
引用:{model:'requests',key:'id'},
onUpdate:'级联',
onDelete:'级联',
},
fk_食品:{
类型:Sequelize.INTEGER,
allowNull:错,
参考:{model:'foods',key:'id'},
onUpdate:'级联',
onDelete:“限制”
},
金额:{
类型:Sequelize.INTEGER,
allowNull:错,
},
创建于:{
类型:Sequelize.DATE,
allowNull:错,
},
更新地址:{
类型:Sequelize.DATE,
allowNull:错,
}
});
},
向下:(查询接口,续集)=>{
返回queryInterface.dropTable('requests_foods');
}
};
最后是控制器(抛出错误的地方)

const-Request=require('../models/Request');
const Food=require(“../models/Food”);
module.exports={
异步列表(req、res){
const dbResponse=wait Request.findAll();
返回res.json(dbResponse);
},
异步添加(req、res){
const{client,time_processing,time_cooking,time_paying,fk_table,fk_employee,foods}=req.body;
控制台日志(请求主体);
const dbResponse=wait Request.create({client,time_processing,time_cooking,time_paying,fk_table,fk_employee});
//寻找食物清单
foods.map(异步项=>{
console.log('ITEM:',ITEM);
const food=等待食物。findByPk(项目。fk_food)
控制台.日志(食物);
food.addRequests();//此处出错
})
返回res.json(dbResponse);
}
}
注:

  • 添加了请求,但未添加请求

  • 我尝试更改为:addRequest()、setRequests、setRequest(),但没有任何效果,我将console.log对象记录下来,似乎该对象没有任何方法:

  • {客户:“Wesley Almeida Braga”,
    处理时间:0,
    时间:0,
    支付时间:0,
    fk_表:1,
    fk_员工:1,
    食品:[{fk_食品:1}]}
    执行(默认):在“请求”(“id”、“客户机”、“时间处理”、“时间烹饪”、“时间付款”、“创建时间”、“更新时间”、“fk员工”、“fk表格”)中插入值(默认值、、、、、、、、、);
    项目:{fk_食品:1}
    执行(默认):从'foods'中选择'id','name','image','price','storage','createdAt'处的'created','updatedAt'处的'updated','fk'u category'作为'Food',其中'Food`.'id`=1;
    食物{
    数据值:
    {id:1,
    名称:'Carne de Sol',
    图片:“example_2.png”,
    价格:25,,
    储存:10,
    创建日期:2020-01-12T03:48:34.000Z,
    更新日期:2020-01-12T03:48:34.000Z,
    fk_类别:1},
    _以前的数据值:
    {id:1,
    名称:'Carne de Sol',
    图片:“example_2.png”,
    价格:25,,
    储存:10,
    创建日期:2020-01-12T03:48:34.000Z,
    更新日期:2020-01-12T03:48:34.000Z,
    fk_类别:1},
    _更改:{},
    _型号选项:
    {时间戳:正确,
    验证:{},
    表名:false,
    是的,
    偏执狂:错,
    拒绝空:错,
    其中集合:{id:1},
    schema:null,
    SchemadeLimitor:“”,
    defaultScope:{},
    作用域:{},
    索引:[],
    姓名:{复数:'食品',单数:'食品'},
    省略null:false,
    续集:
    续集{
    选项:[对象],
    配置:[对象],
    方言:[mysqldialogue],
    queryInterface:[queryInterface],
    模型:[对象],
    模型管理器:[模型管理器],
    connectionManager:[连接管理器],