From c350edf53873fd0aeee15e5ac05f7303c2cbe69c Mon Sep 17 00:00:00 2001 From: yoga Date: Sun, 31 Jul 2022 03:13:04 +0800 Subject: [PATCH] =?UTF-8?q?add(app):=20=E5=A2=9E=E5=8A=A0=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E5=85=9C=E5=BA=95=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/index.ts | 6 ++++-- src/middlewares/captureRouteOmit.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 src/middlewares/captureRouteOmit.ts diff --git a/src/app/index.ts b/src/app/index.ts index 5b553cc..109e7fc 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -6,6 +6,7 @@ import KoaStatic from "koa-static"; const parameter = require("koa-parameter"); require("../config/env.config"); // 加载配置 +import { captureRouteOmit } from "../middlewares/captureRouteOmit"; import { router } from "../routers"; // 加载路由 import errHandler from "./errorHandler"; // 加载自定义异常 @@ -15,15 +16,16 @@ app.use( KoaBody({ multipart: true, formidable: { - uploadDir: path.join(__dirname, "../upload"), + uploadDir: path.join(__dirname, "../../data/upload"), keepExtensions: true, }, parsedMethods: ["POST", "PUT", "PATCH", "DELETE"], }) ); -app.use(KoaStatic(path.join(__dirname, "../upload"))); +app.use(KoaStatic(path.join(__dirname, "../../public"))); app.use(parameter(app)); +app.use(captureRouteOmit); app.use(router.routes()).use(router.allowedMethods()); // 统一的错误处理 diff --git a/src/middlewares/captureRouteOmit.ts b/src/middlewares/captureRouteOmit.ts new file mode 100644 index 0000000..3e99b5f --- /dev/null +++ b/src/middlewares/captureRouteOmit.ts @@ -0,0 +1,15 @@ +export async function captureRouteOmit(ctx: any, next: any) { + try { + await next(); + if (!ctx.body) { + // 没有资源 + ctx.status = 404; + ctx.body = { message: "Not Found." }; + } + } catch (e) { + // 如果后面的代码报错 返回500(泛服务器错误) + ctx.status = 500; + ctx.body = { message: "Server Error." }; + // 记录错误日志 + } +}