Bläddra i källkod

feat: 修复接口 ctx 问题

zhangyuhan 9 månader sedan
förälder
incheckning
967dd5841f
3 ändrade filer med 52 tillägg och 9 borttagningar
  1. 3 3
      service/api/page.js
  2. 39 5
      service/controller/page.js
  3. 10 1
      service/extend/helper.js

+ 3 - 3
service/api/page.js

@@ -22,7 +22,7 @@ module.exports = app => ({
     const { ctx, $model } = app;
     let userData = ctx.userData
     let query = { author: userData._id, pageMode: pageMode, is_delete: { $ne: true }, isTemplate: { $ne: true } };
-    return await $model.page.count(query);
+    return await $model.page.countDocuments(query);
   },
   /**
    * 获取我的协作页面数量
@@ -32,7 +32,7 @@ module.exports = app => ({
     const { ctx, $model } = app;
     let userData = ctx.userData
     let query = { members: { $elemMatch: { $in: userData._id } }, pageMode: pageMode, is_delete: { $ne: true }, isTemplate: { $ne: true } };
-    return await $model.page.count(query);
+    return await $model.page.countDocuments(query);
   },
   /**
    * 获取我的模板列表
@@ -174,4 +174,4 @@ module.exports = app => ({
     }
     return await $model.page.find(query).select('_id title coverImage').exec();
   },
-});
+});

+ 39 - 5
service/controller/page.js

@@ -118,11 +118,45 @@ module.exports = app => ({
    * 获取页面详情
    * @returns {Promise<void>}
    */
-  async pageDetail() {
-    const { ctx, $service, $helper } = app;
+
+  async pageDetail(ctx) {
     let { pageId } = ctx.request.query;
-    const pageData = await $service.page.getPageDetail(pageId);
-    $helper.returnBody(true, pageData)
+    const { $service, $helper } = app;
+    if (!pageId) {
+      // 如果 pageId 不存在,返回 404 错误
+      ctx.status = 404;
+      ctx.body = {
+        status: false,
+        body: {},
+        msg: 'Page not found',
+        code: 404
+      };
+      return;
+    }
+    try {
+      const pageData = await $service.page.getPageDetail(pageId);
+      if (!pageData) {
+        // 如果没有找到页面数据,返回 404 错误
+        ctx.status = 404;
+        ctx.body = {
+          status: false,
+          body: {},
+          msg: 'Page not found',
+          code: 404
+        };
+        return;
+      }
+      $helper.returnContentBody(ctx, { body: pageData })
+    } catch (error) {
+      // 处理异常情况
+      ctx.status = 500;
+      ctx.body = {
+        status: false,
+        body: {},
+        msg: 'Internal Server Error',
+        code: 500
+      };
+    }
   },
   /**
    * 渲染页面
@@ -158,4 +192,4 @@ module.exports = app => ({
     })
     $helper.returnBody(true, { outputDir: currentPathDir + `/${pageId}.json` })
   }
-})
+})

+ 10 - 1
service/extend/helper.js

@@ -20,6 +20,15 @@ module.exports = app => ({
       code: code
     }
   },
+  returnContentBody (ctx, { status = true, body = {}, msg = 'success', code = 200 }) {
+    ctx.status = code
+    ctx.body = {
+      status,
+      body,
+      msg,
+      code
+    }
+  },
   // 生成token
   async createToken(data) {
     let { $config } = app;
@@ -97,4 +106,4 @@ function mkdir(dir) {
       }
     })
   })
-}
+}