From 5f462422a348a98d7bcdcf4c97acf34eac04ac38 Mon Sep 17 00:00:00 2001 From: npmrun Date: Wed, 14 Jun 2023 00:11:30 +0800 Subject: [PATCH] add --- data/data.db | Bin 32768 -> 32768 bytes docs/a.md | 1 + package.json | 1 + pnpm-lock.yaml | 3 +++ route.txt | 4 +--- source/log4js_config.ts | 5 +++-- source/plugins/index.ts | 12 ++++++------ source/run.ts | 26 +++++++++++++++++++------- source/util/index.ts | 2 ++ template/403.pug | 10 ++++++++++ template/404.pug | 2 +- template/layout/layout.pug | 1 + template/views/register.pug | 1 - 13 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 docs/a.md create mode 100644 template/403.pug diff --git a/data/data.db b/data/data.db index c7a5199bc2078f5d7c2ec6dc3607d09cdd3e2bf5..373287bc2d6fc95cbf268aad787dd571fefb6792 100644 GIT binary patch delta 722 zcmZo@U}|V!njpEoi-~9$Z*z23UDw;OG|rtGAO43fq?-kWn^GvtZQJVYiO)sXl7+#W@T!m zXJ}!hplx7aWnh3`Hk_Y>K~h>0X!P@4i(YhY0-9_91P~5XYdykb6JtFKV-s8^qsZp+ zaWIIA3VV8b7NshrKyV70V+^f~jrGh7EU_C1ldZ=oZKh{oUg=y76#hKP?QR^ z4up_xGqo}>w=y-=Gc`BGVjQMyHaFBb&!WjQr3E)%kWyn}@#W!QnEXpdO3TpL$^;nH zhI$5usK%M<8d@kI%Wk%lT_(gRu=%OJq5#)g27YV4F5a~aOq&H2I(X~9GKe>_it0Bq z0KrQro3$~DnFqqoR|fhfF(o%MPsJ!n#n3<{*C`|*%cMNrJuS>DCn7&9Eu_dKBGn+m z+&>`Q#my+p*Dcv7GBLG0G{~da$il_gAT!D@I5If1$k5cp(!|Wt+}zZmuuv~KKUcq? zG%05?j~}nJfk8YdoZ=14;th@C4b3df%*-q-O-xKpj3(Rr84E(vm8q4frIn$%o|&oH J=4QWILjW)LuUh~B delta 263 zcmZo@U}|V!njp>CK2gS*v3+C0LVjtUZwy>qTNwCTcsKE>^WEol9&DgX&E8R75@?T$dHA4$s69aQY zOAAYLL&JC@10&;j1Jigz^LRru3ln1_6EhPNGh^e)_I}2b@5!)D=9gw=Gd9sPH#FJY I>{n|D0PH => { server.events.on('request', (request, event, tags) => { if (tags.error) { loggerSite.error(request.path, "\n", event); - } else { + } else { loggerSite.info(request.path, "\n", event); - } + } }); server.events.on('log', (event, tags) => { if (tags.error) { loggerSite.error(event); - } else { + } else { loggerSite.info(event); - } + } }); await server.register([ { @@ -42,7 +43,7 @@ const run = async (): Promise => { options: [ { name: "data", // identifier - models: isDev?["source/models/**/*.ts"]:["dist/models/**/*.js"], // paths/globs to model files + models: isDev ? ["source/models/**/*.ts"] : ["dist/models/**/*.js"], // paths/globs to model files // ignoredModels: [__dirname + "/server/models/**/*.js"], // OPTIONAL: paths/globs to ignore files sequelize: sequelize, // sequelize instance sync: true, // sync models - default false @@ -96,7 +97,7 @@ const run = async (): Promise => { const Pug = require("pug") Pug.filters.public = function (text, options) { const p = path.resolve(publicDir, text) - if(fs.pathExistsSync(p)) { + if (fs.pathExistsSync(p)) { return fs.readFileSync(p, "utf-8") } return "" @@ -160,6 +161,17 @@ const run = async (): Promise => { }, }, ]) + + server.ext('onPreResponse', (request, h) => { + const { response } = request + + // 如果状态码为403,则调用自定义错误处理程序 + if (response instanceof Boom && (response.output.statusCode < 200 || response.output.statusCode > 299)) { + return h.view('403.pug', { error: response}) + } + return h.continue; + }); + await server.start() logger.trace("Server running on %s", server.info.uri.replace("0.0.0.0", "localhost")) return server diff --git a/source/util/index.ts b/source/util/index.ts index 56b8e27..c2364df 100644 --- a/source/util/index.ts +++ b/source/util/index.ts @@ -6,6 +6,8 @@ export const isProd = process.env.NODE_ENV === "production" export const baseDir = path.resolve(__dirname, "../../") +export const logsDir = path.resolve(__dirname, "../../logs") + export const sourceDir = isProd ? path.resolve(__dirname, "../../dist") : path.resolve(__dirname, "../../source") export const publicDir = path.resolve(__dirname, "../../public") export const uploadDir = path.resolve(publicDir, "upload") diff --git a/template/403.pug b/template/403.pug new file mode 100644 index 0000000..7c8542e --- /dev/null +++ b/template/403.pug @@ -0,0 +1,10 @@ +extends layout/layout + +block head + link(rel="stylesheet", href="/public/css/views/404.css") + +block content + include @/helper/flush.pug + div(style="text-align: center") + span.text404 403 + div #{error} \ No newline at end of file diff --git a/template/404.pug b/template/404.pug index 2318a13..8d761b1 100644 --- a/template/404.pug +++ b/template/404.pug @@ -1,10 +1,10 @@ extends layout/layout -include @/helper/flush.pug block head link(rel="stylesheet", href="/public/css/views/404.css") block content + include @/helper/flush.pug div(style="text-align: center") span.text404 404 div 重定向回:#{rollback} diff --git a/template/layout/layout.pug b/template/layout/layout.pug index 9441af6..b095f31 100644 --- a/template/layout/layout.pug +++ b/template/layout/layout.pug @@ -1,5 +1,6 @@ doctype html include @/helper/helper.pug +include @/helper/flush.pug block var html(lang="zh-cn" class=hideHeader?"":"has-navbar-fixed-top") diff --git a/template/views/register.pug b/template/views/register.pug index c49e38f..ef3a334 100644 --- a/template/views/register.pug +++ b/template/views/register.pug @@ -1,5 +1,4 @@ extends @/layout/layout -include @/helper/flush.pug block var -title="注册" // 网页标题