[Sequelize.findAll在另一个文件上时,导出功能不返回数据

问题描述 投票:0回答:1

我从请求查询中获取一些数据,并将请求的参数发送到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数据库。请求成功后,它将返回数据(主控制器文件),并代表该数据我需要...

mysql express sequelize.js return-value
1个回答
0
投票

您的常用方法是异步的,因此您必须返回一个Promise。

© www.soinside.com 2019 - 2024. All rights reserved.