mjavaa 2024-10-28 18:50 采纳率: 0%
浏览 22
已结题

egg异步请求返回404的问题

使用egg.js 更新数据库里面用户,在更新呢完毕拿到数据后,数据库数据更新,然后apifox调用返回的却是404,
用的是mongodb的数据库, 请看代码
router.js

img

controller user.js

img

service user.js

img

img

该加异步的地方都加了,哪里出了问题。求帮忙看以下

  • 写回答

28条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-10-28 18:50
    关注
    获得0.30元问题酬金

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    在MONGODB中处理EGG异步请求返回404的问题,你可以通过以下步骤解决:

    1. 安装NODE.JS: 首先确保你已经安装了NODE.JS。如果没有,可以使用NPM或YARN进行安装。

    2. 创建MONGODB实例: 使用MONGO命令行工具创建一个新的MONGODB实例。例如:

      MONGO <YOUR_DATABASE_NAME>
      
    3. 配置MONGODB服务器: 在<YOUR_DATABASE_NAME>下创建一个新数据库,并设置其类型为PUBLIC(默认)或者指定其他类型的数据库。

    4. 处理异步请求: 使用EGG.JS库来处理异步请求。首先,你需要添加到你的项目中。如果你使用的是NODE.JS,可以在PACKAGE.JSON文件中添加依赖:

      "SCRIPTS": {
          "START": "NODE SERVER.JS"
      }
      

      然后,使用EGG.JS库来解析和执行异步任务:

      CONST { SERVER } = REQUIRE('EGG');
      
      MODULE.EXPORTS = ASYNC (APP) => {
          APP.POST('/API/USER', (REQ, RES) => {
              TRY {
                  // 异步请求
                  AWAIT FETCHUSER(REQ.BODY);
                  RES.STATUS(200).SEND({ MESSAGE: 'SUCCESS' });
              } CATCH (ERROR) {
                  RES.STATUS(ERROR.CODE || ERROR.STATUS).SEND(ERROR.MESSAGE || ERROR);
              }
          });
      
          RETURN APP;
      };
      
    5. 获取异步数据: 调用异步API并获取数据:

      APP.GET('/API/USER', ASYNC (REQ, RES) => {
          TRY {
              // 获取异步数据
              CONST USER = AWAIT GETUSER(REQ.QUERY.USERNAME);
      
              IF (!USER) {
                  THROW NEW ERROR(`FAILED TO GET USER WITH USERNAME ${REQ.QUERY.USERNAME}`);
              }
      
              RES.SEND(USER);
          } CATCH (ERROR) {
              RES.STATUS(ERROR.CODE || ERROR.STATUS).SEND(ERROR.MESSAGE || ERROR);
          }
      });
      
    6. 检查异步数据: 如果异步数据没有成功获取,检查错误信息:

      APP.GET('/API/USER', ASYNC (REQ, RES) => {
          TRY {
              // 获取异步数据
              CONST USER = AWAIT GETUSER(REQ.QUERY.USERNAME);
      
              IF (!USER) {
                  THROW NEW ERROR(`FAILED TO GET USER WITH USERNAME ${REQ.QUERY.USERNAME}`);
              }
      
              RES.SEND(USER);
          } CATCH (ERROR) {
              RES.STATUS(ERROR.CODE || ERROR.STATUS).SEND(ERROR.MESSAGE || ERROR);
          }
      });
      
    7. 调试: 检查异步请求是否按预期工作。可以通过打印日志来跟踪请求过程。

    8. 验证: 检查异步请求是否正确处理了异常情况。

    通过上述步骤,你应该能够有效地处理EGG异步请求返回404的问题。

    评论

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 创建了问题 10月28日