我从请求查询中获取一些数据,并将请求的参数发送到MySQL数据库。当请求成功时,它将返回数据(主控制器文件),并代表该数据我需要调用其他模型类上存在的其他一些函数(通用方法文件)。 通用方法文件函数也具有某些数据库依赖性。当我从通用方法文件进行调试时,它会按预期返回数据。但是它不会从(主控制器文件)返回任何数据。我现在应该怎么办?
我也尝试将其转换为异步等待,但失败。
主控制器文件
const MenuData = require('../../models/common/MenuData');
const MenuModel = require('../../models/menu/menuModel');
exports.listMenu = function(req, res) {
let menu_id = 0;
if(req.query.menuID){
menu_id=req.query.menuID;
MenuModel.findOne({
where:{
id:menu_id
}
}).then(menu=>{
if(menu){
let menu_details = MenuData.menuDetails(menu.dataValues);
if(menu_details){
return res.send({status: 200, message: menu_details});
}else{
return res.send({status: 302, message: "Data Not Found"});
}
}
}).catch(err =>{
return res.send('error: '+err);
});
}else{
return res.send('error: '+err);;
}
};
通用方法文件
const MenuRelationalModel = require('../../models/menu/menuRelationModel');
exports.menuDetails=(content_data)=>{
let data = [];
if(content_data){
if(content_data.id && content_data.id == 1){
MenuRelationalModel.findAll({
where:{
menu_id:content_data.id
}
}).then(menu_all_data =>{
if(menu_all_data){
menu_all_data.map((menu_item,index)=>{
data.push(menu_item.dataValues);
})
return data;
}
}).catch(err =>{
data.push(err);
return data;
});
}
}
}
即将输出
{
"status": 302,
"message": []
}
预期输出] >>
{
"status": 200,
"message": [
{
"id": 4,
"menu_id": 1,
"parent_page_id": 0,
"page_id": 1,
"item_title": "Ongoing",
"item_type": "category",
"parent_type": "category"
},
{
"id": 5,
"menu_id": 1,
"parent_page_id": 0,
"page_id": 2,
"item_title": "Completed",
"item_type": "category",
"parent_type": "category"
}
]
}
我从请求查询中获取一些数据,并将请求的参数发送到MySQL数据库。请求成功后,它将返回数据(主控制器文件),并代表该数据我需要...
您的常用方法是异步的,因此您必须返回一个Promise。