From 76d66cc38f81e4b0277d5ed5a4870db14bc84100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E4=BA=9A=E6=98=95?= <1549469775@qq.com> Date: Thu, 14 Aug 2025 15:36:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 + bun.lockb | Bin 137342 -> 137792 bytes database/development.sqlite3-shm | Bin 32768 -> 32768 bytes database/development.sqlite3-wal | Bin 457352 -> 243112 bytes package.json | 5 +- public/lib/bg-change.js | 424 +++++++++++++++++++++ public/static/bg2.webp | Bin 0 -> 107198 bytes public/styles.css | 9 +- src/controllers/Page/HtmxController.js | 43 ++- src/controllers/Page/PageController.js | 68 +++- src/db/index.js | 30 +- .../20250616065041_create_users_table.mjs | 2 +- src/db/seeds/20250621013324_site_config_seed.mjs | 4 +- src/middlewares/Views/index.js | 1 + src/middlewares/errorHandler/index.js | 90 +++-- src/middlewares/install.js | 1 + src/services/userService.js | 9 +- src/utils/error/CommonError.js | 7 + src/views/error/index.pug | 8 + src/views/htmx/footer.pug | 3 +- src/views/htmx/fuck.pug | 4 - src/views/htmx/navbar.pug | 2 - src/views/htmx/timeline.pug | 44 +-- src/views/layouts/base.pug | 124 +++++- src/views/page/auth/no-auth.pug | 8 +- src/views/page/index/index copy.pug | 17 + src/views/page/index/index.pug | 12 +- src/views/page/register/index.pug | 16 +- 28 files changed, 764 insertions(+), 170 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 public/lib/bg-change.js create mode 100644 public/static/bg2.webp create mode 100644 src/utils/error/CommonError.js create mode 100644 src/views/error/index.pug delete mode 100644 src/views/htmx/fuck.pug create mode 100644 src/views/page/index/index copy.pug diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f4a7f34 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "CodeFree.index": true +} \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index f91fe0837afdac46026a04b8198ab809c212323e..cc49194da6658b04221713b27c8bb7e176b844b7 100644 GIT binary patch delta 18567 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 Y(FzL*YhglS@OY05EzT|HjIs6q3ycwbJpcdz delta 17998 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 VMu%m%a`UT=9qf%9exw%L@ZT{e@t^ zFtb7C{zn2(aV7@qiH-5P%s?(H5VHX>LH1-tCgq8L6ch<6-0aA-*I{x1(}m6doLJZd z#Tld+WEm6~G#CsRj2X-rEP?V*nK)S)*crGPlo_;v+^1vjOj`++S{jNn_N7W|UutXZ`@WXiYpcdxVw^Z)?*4JlW?BFM4(N6Wewr(}@yiKLo^Le1!V6E#J+Z__@! zlF^z?A(hn9ikCqqS!A7%b|gHBb^|67$)$u+8t7q!8J5{%n;<)}iY*BX8RSt$HI1~> z%P6y~u&c+8He@zKu^<4iHn w602;m&!Ikh5Y^W?qazDD1r+0;iW=%^p^YxO8DN+Rrdhzx8k-yt)<=(}U)iN)EC2ui diff --git a/database/development.sqlite3-wal b/database/development.sqlite3-wal index 805e8c0cc75c665b7eb50b51c6b4c00b919cd183..7ebc8c553bd13d4dcff1478839797c8d346d433b 100644 GIT binary patch literal 243112 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 literal 457352 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 0 ? parseInt(savedRemainingTime) : this.interval; + this.bgLayer = document.createElement('div'); + this.isInitialLoad = true; + + // 从localStorage中读取API模式状态 + const isApiMode = localStorage.getItem('bgSwitcherIsApiMode') === 'true'; + if (isApiMode) { + this.apiUrl = localStorage.getItem('bgSwitcherApiUrl') || null; + const savedApiInterval = localStorage.getItem('bgSwitcherApiInterval'); + this.apiInterval = savedApiInterval !== null && !isNaN(savedApiInterval) ? parseInt(savedApiInterval) : 30000; + } + // 监听页面可见性变化 + this.handleVisibilityChange = this.handleVisibilityChange.bind(this); + document.addEventListener('visibilitychange', this.handleVisibilityChange); + + // 监听页面卸载事件,确保保存状态 + this.handleBeforeUnload = this.handleBeforeUnload.bind(this); + window.addEventListener('beforeunload', this.handleBeforeUnload); + this.bgLayer.style.position = 'fixed'; + this.bgLayer.style.top = 0; + this.bgLayer.style.left = 0; + this.bgLayer.style.width = '100vw'; + this.bgLayer.style.height = '100vh'; + this.bgLayer.style.zIndex = '-1'; + this.bgLayer.style.transition = 'opacity 1s'; + this.bgLayer.style.opacity = 1; + this.bgLayer.style.backgroundSize = 'cover'; + this.bgLayer.style.backgroundColor = '#000000'; + this.bgLayer.style.backgroundPosition = 'center'; + this.bgLayer.style.filter = 'brightness(0.68)' + this.container.style.backgroundColor = '#000000'; + } + + setBg(url) { + // 切换时先预加载目标图片,加载完成后再切换显示 + const img = new Image(); + img.onload = () => { + if (this.isInitialLoad) { + // 初始加载时,先设置背景图再添加到页面 + this.bgLayer.style.backgroundImage = `url(${url})`; + this.container.appendChild(this.bgLayer); + this.isInitialLoad = false; + } else { + this.effect(this.bgLayer, url); + } + if(!this.isApiMode) { + this.scheduleNext(); + } + }; + img.onerror = () => { + // 加载失败时处理 + console.warn('背景图片加载失败:', url); + if (this.isInitialLoad) { + // 初始加载失败时,也添加背景层到页面 + this.container.appendChild(this.bgLayer); + this.isInitialLoad = false; + } + }; + img.src = url; + } + + next() { + const nextIndex = (this.index + 1) % this.images.length; + const nextUrl = this.images[nextIndex]; + // 切换前先预加载 + const img = new Image(); + img.onload = () => { + this.index = nextIndex; + // 保存索引到localStorage + localStorage.setItem('bgSwitcherIndex', this.index); + this.effect(this.bgLayer, nextUrl); + this.scheduleNext(); + }; + img.onerror = () => { + // 加载失败时跳过 + console.warn('背景图片加载失败:', nextUrl); + this.scheduleNext(); + }; + img.src = nextUrl; + } + + prev() { + const prevIndex = (this.index - 1 + this.images.length) % this.images.length; + const prevUrl = this.images[prevIndex]; + // 切换前先预加载 + const img = new Image(); + img.onload = () => { + this.index = prevIndex; + // 保存索引到localStorage + localStorage.setItem('bgSwitcherIndex', this.index); + this.effect(this.bgLayer, prevUrl); + this.scheduleNext(); + }; + img.onerror = () => { + // 加载失败时跳过 + console.warn('背景图片加载失败:', prevUrl); + this.scheduleNext(); + }; + img.src = prevUrl; + } + + start() { + if (this.timer || this.apiTimer) return; + + // 如果处于API模式,启动API请求 + if (this.apiUrl) { + this.fetchRandomWallpaper(); + } else { + // 否则使用默认轮播 + this.setBg(this.images[this.index]); + } + } + + /** + * 安排下一次背景切换 + */ + scheduleNext() { + if (this.timer) { + clearTimeout(this.timer); + } + + // 记录开始时间 + this.startTime = Date.now(); + + // 使用剩余时间或默认间隔 + const timeToWait = this.remainingTime > 0 ? this.remainingTime : this.interval; + + this.timer = setTimeout(() => { + this.remainingTime = this.interval; // 重置剩余时间 + // 保存剩余时间到localStorage + localStorage.setItem('bgSwitcherRemainingTime', this.remainingTime); + this.next(); + }, timeToWait); + } + + /** + * 处理页面可见性变化 + */ + handleVisibilityChange() { + if (document.hidden) { + // 页面不可见时,暂停计时器并计算剩余时间 + if (this.timer) { + const elapsedTime = Date.now() - this.startTime; + this.remainingTime = Math.max(0, this.remainingTime - elapsedTime); + // 保存剩余时间到localStorage + localStorage.setItem('bgSwitcherRemainingTime', this.remainingTime); + clearTimeout(this.timer); + this.timer = null; + } + // 暂停API计时器 + if (this.apiTimer) { + const elapsedTime = Date.now() - this.startTime; + this.remainingTime = Math.max(0, this.remainingTime - elapsedTime); + // 保存剩余时间到localStorage + localStorage.setItem('bgSwitcherRemainingTime', this.remainingTime); + clearTimeout(this.apiTimer); + this.apiTimer = null; + } + } else { + // 页面可见时,恢复计时器 + if (!this.timer && !this.apiTimer && !this.apiUrl) { + // 如果没有活跃的计时器,使用默认的轮播 + this.scheduleNext(); + } else if (this.apiTimer === null && this.apiUrl) { + // 如果处于API模式但计时器未运行,恢复API请求 + this.scheduleNextApiRequest(); + } + } + } + + /** + * 处理页面卸载事件,确保保存状态 + */ + handleBeforeUnload() { + // 保存当前索引 + localStorage.setItem('bgSwitcherIndex', this.index); + + // 保存API模式状态 + localStorage.setItem('bgSwitcherIsApiMode', !!this.apiUrl); + if (this.apiUrl) { + localStorage.setItem('bgSwitcherApiUrl', this.apiUrl); + localStorage.setItem('bgSwitcherApiInterval', this.apiInterval); + } + + // 如果计时器在运行,计算并保存剩余时间 + if (this.timer || this.apiTimer) { + const elapsedTime = Date.now() - this.startTime; + this.remainingTime = Math.max(0, this.remainingTime - elapsedTime); + localStorage.setItem('bgSwitcherRemainingTime', this.remainingTime); + } + } + + stop() { + if (this.timer) { + clearTimeout(this.timer); + this.timer = null; + } + // 重置剩余时间 + this.remainingTime = this.interval; + // 保存剩余时间到localStorage + localStorage.setItem('bgSwitcherRemainingTime', this.remainingTime); + } + + /** + * 从API获取随机壁纸并定期更新 + * @param {string} apiUrl - 获取随机壁纸的API地址 + * @param {number} interval - 请求间隔时间(毫秒) + */ + startRandomApiSwitch(apiUrl, interval = 30000) { + this.stop(); // 停止当前的轮播 + this.apiInterval = interval; + this.apiUrl = apiUrl; + + // 创建专用的API计时器 + this.apiTimer = null; + + // 立即请求一次 + this.fetchRandomWallpaper(); + } + + /** + * 从API获取随机壁纸 + */ + fetchRandomWallpaper() { + // 记录开始时间,用于计算剩余时间 + this.startTime = Date.now(); + this.remainingTime = this.apiInterval; + + fetch(this.apiUrl) + .then(response => { + console.log(response); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return response.json(); + }) + .then(data => { + // 假设API返回的数据格式为 { wallpaperUrl: '图片地址' } + const wallpaperUrl = data.wallpaperUrl || data.url || data.image; + if (wallpaperUrl) { + // 预加载图片 + const img = new Image(); + img.onload = () => { + if (this.isInitialLoad) { + // 初始加载时,先设置背景图再添加到页面 + this.container.appendChild(this.bgLayer); + this.isInitialLoad = false; + } + // 保存当前索引(使用-1标记这是API获取的图片) + this.index = -1; + localStorage.setItem('bgSwitcherIndex', -1); + this.effect(this.bgLayer, wallpaperUrl); + this.scheduleNextApiRequest(); + }; + img.onerror = () => { + console.warn('API返回的壁纸加载失败:', wallpaperUrl); + this.scheduleNextApiRequest(); + }; + img.src = wallpaperUrl; + + } else { + console.warn('背景图片加载失败:', url); + if (this.isInitialLoad) { + console.warn('API返回的数据格式不正确,未找到壁纸地址'); + // 初始加载失败时,也添加背景层到页面 + this.container.appendChild(this.bgLayer); + this.isInitialLoad = false; + } + this.scheduleNextApiRequest(); + } + }) + .catch(error => { + console.error('获取随机壁纸失败:', error); + this.scheduleNextApiRequest(); + }); + } + + /** + * 安排下一次API请求 + */ + scheduleNextApiRequest() { + if (this.apiTimer) { + clearTimeout(this.apiTimer); + } + + // 使用剩余时间或默认间隔 + const timeToWait = this.remainingTime > 0 ? this.remainingTime : this.apiInterval; + + this.apiTimer = setTimeout(() => { + this.remainingTime = this.apiInterval; // 重置剩余时间 + localStorage.setItem('bgSwitcherRemainingTime', this.remainingTime); + this.fetchRandomWallpaper(); + }, timeToWait); + } + + /** + * 停止API随机壁纸请求 + */ + stopRandomApiSwitch() { + if (this.apiTimer) { + clearTimeout(this.apiTimer); + this.apiTimer = null; + } + this.apiUrl = null + // 重置剩余时间 + this.remainingTime = this.interval; + localStorage.setItem('bgSwitcherRemainingTime', this.remainingTime); + } + + static fadeEffect(layer, url) { + layer.style.transition = 'opacity 1s'; + layer.style.opacity = 0; + setTimeout(() => { + layer.style.backgroundImage = `url(${url})`; + layer.style.opacity = 1; + }, 500); + } +} + +// 使用示例 +// 1. 默认本地图片轮播 +// const images = [ +// '/static/bg2.webp', +// '/static/bg.jpg', +// ]; +// const bgSwitcher = new BgSwitcher(images, { interval: 5000 }); +// 启动轮播 +// bgSwitcher.start(); + +// 2. 随机API壁纸示例 +// 创建一个新的BgSwitcher实例用于API模式 +const apiBgSwitcher = new BgSwitcher([], { interval: 5000 }); // API模式不需要本地图片列表 + +// 模拟API函数,实际使用时替换为真实API地址 +function createMockWallpaperApi() { + // 模拟壁纸地址库 + const mockWallpapers = [ + '/static/bg2.webp', + '/static/bg.jpg', + ]; + + // 创建一个简单的服务器端点 + if (window.mockWallpaperServer) { + clearInterval(window.mockWallpaperServer); + } + + // 模拟API响应 + window.fetchRandomWallpaper = function () { + return new Promise((resolve) => { + setTimeout(() => { + const randomIndex = Math.floor(Math.random() * mockWallpapers.length); + resolve({ + ok: true, + json() { + return { + wallpaperUrl: mockWallpapers[randomIndex] + } + } + }); + }, 500); + }); + }; + + // 替换原生fetch以模拟API调用 + window.originalFetch = window.fetch; + window.fetch = function (url) { + if (url === '/api/random-wallpaper') { + return window.fetchRandomWallpaper(); + } + return window.originalFetch(url); + }; + + console.log('模拟壁纸API已启动'); +} + +// 初始化模拟API +createMockWallpaperApi(); + +// 启动API模式的随机壁纸切换(每10秒请求一次) +apiBgSwitcher.startRandomApiSwitch('/api/random-wallpaper', 10000); + +fetch("https://pic.xieyaxin.top/random.php") + .then(response => { + if(response.body instanceof ReadableStream) { + return response.blob() + } + return response.json() + }) + .then(data => { + console.log(URL.createObjectURL(data)); + + }) + +// 要停止API模式,使用 +// apiBgSwitcher.stopRandomApiSwitch(); + +// 要切换回本地图片轮播,使用 +// apiBgSwitcher.stopRandomApiSwitch(); +// apiBgSwitcher.start(); + +// 启动默认轮播 +// bgSwitcher.start(); diff --git a/public/static/bg2.webp b/public/static/bg2.webp new file mode 100644 index 0000000000000000000000000000000000000000..6e1a18c98f4f5ddc8ff4b70020706d4f4d13fb85 GIT binary patch literal 107198 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

6AwF{o#RzkcU+OezyHJK=9iwt0`(q{aM+ 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

ui&M>H-Yaw@n5}jRmq8B1H}`|8m>MG! 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 OTA*llqVqPu0000)KwP%~ literal 0 HcmV?d00001 diff --git a/public/styles.css b/public/styles.css index c9e5e11..d59f079 100644 --- a/public/styles.css +++ b/public/styles.css @@ -12,7 +12,7 @@ body { display: flex; flex-direction: column; } - +/* body::after { content: ""; position: fixed; @@ -24,10 +24,11 @@ body::after { background-image: var(--bg); background-size: cover; background-repeat: no-repeat; + background-color: #000000; background-color: #f9f9f9; - filter: brightness(.55); - z-index: -1; -} + filter: brightness(.75); + z-index: -2; +} */ .navbar { height: 49px; diff --git a/src/controllers/Page/HtmxController.js b/src/controllers/Page/HtmxController.js index 3df03f3..9908a22 100644 --- a/src/controllers/Page/HtmxController.js +++ b/src/controllers/Page/HtmxController.js @@ -14,8 +14,47 @@ class HtmxController { static createRoutes() { const controller = new HtmxController() const router = new Router({ auth: "try" }) - router.post("/clicked", async ctx => { - return await ctx.render("htmx/fuck", { title: "HTMX Clicked" }) + router.get("/htmx/timeline", async ctx => { + return await ctx.render("htmx/timeline", { + timeLine: [ + { + icon: "第一份工作", + title: "???", + desc: `做游戏的。`, + }, + { + icon: "大学毕业", + title: "2014年09月", + desc: `我从江西师范大学毕业, + 获得了软件工程(虚拟现实与技术)专业的学士学位。`, + }, + { + icon: "高中", + title: "???", + desc: `宜春中学`, + }, + { + icon: "初中", + title: "???", + desc: `宜春实验中学`, + }, + { + icon: "小学(4-6年级)", + title: "???", + desc: `宜春二小`, + }, + { + icon: "小学(1-3年级)", + title: "???", + desc: `丰城市泉港镇小学`, + }, + { + icon: "出生", + title: "1996年06月", + desc: `我出生于江西省丰城市泉港镇`, + }, + ], + }) }) return router } diff --git a/src/controllers/Page/PageController.js b/src/controllers/Page/PageController.js index 5113454..28e41b5 100644 --- a/src/controllers/Page/PageController.js +++ b/src/controllers/Page/PageController.js @@ -14,6 +14,18 @@ class PageController { return await ctx.render("page/auth/no-auth", {}) } + async loginGet(ctx) { + if (ctx.state.user) { + ctx.cookies.set("toast", JSON.stringify({ type: "error", message: encodeURIComponent("用户已登录") }), { + maxAge: 1, + httpOnly: false, + path: "/", + }) + return ctx.redirect("/?msg=用户已登录") + } + return await ctx.render("page/login/index", { site_title: "登录" }) + } + async loginPost(ctx) { const { username, email, password } = ctx.request.body const result = await this.userService.login({ username, email, password }) @@ -21,18 +33,53 @@ class PageController { ctx.body = { success: true, message: "登录成功" } } + async registerGet(ctx) { + if (ctx.state.user) { + ctx.cookies.set("toast", JSON.stringify({ type: "error", message: encodeURIComponent("用户已登录") }), { + maxAge: 1, + httpOnly: false, + path: "/", + }) + return ctx.redirect("/?msg=用户已登录") + } + return await ctx.render("page/register/index", { site_title: "注册" }) + } + async registerPost(ctx) { - const { username, email, password } = ctx.request.body - await this.userService.register({ username, email, password }) + const { username, password } = ctx.request.body + + // try { + await this.userService.register({ username, password, role: "user" }) + + // ctx.cookies.set("toast", JSON.stringify({ type: "success", message: "注册成功" }), { + // maxAge: 1, + // httpOnly: false, + // path: "/", + // }) + // } catch (error) { + // ctx.cookies.set('toast', JSON.stringify({type:"error",message:encodeURIComponent(error.message || error)}), { + // maxAge: 1, + // httpOnly: false, + // path: '/', + // }) + // } return ctx.redirect("/login") } + logout(ctx) { + delete ctx.session.user + return ctx.redirect("/?msg=用户已退出") + } + pageGet(name, data) { return async ctx => { - return await ctx.render(name, { - ...(data || {}), - user: ctx.state.user, - }, { includeSite: true }) + return await ctx.render( + name, + { + ...(data || {}), + }, + { includeSite: true, includeUser: true } + ) } } @@ -40,18 +87,19 @@ class PageController { const controller = new PageController() const router = new Router({ auth: "try" }) // 首页 - router.get("/", controller.indexGet.bind(controller), { auth: false }) + router.get("/", controller.indexGet.bind(controller), { auth: false }) // 未授权报错页 router.get("/no-auth", controller.indexNoAuth.bind(controller), { auth: false }) router.get("/article/:id", controller.pageGet("page/articles/index"), { auth: false }) router.get("/articles", controller.pageGet("page/articles/index"), { auth: false }) - + router.get("/about", controller.pageGet("page/about/index"), { auth: false }) - router.get("/login", controller.pageGet("page/login/index"), { auth: false }) + router.get("/login", controller.loginGet.bind(controller), { auth: "try" }) router.post("/login", controller.loginPost.bind(controller), { auth: false }) - router.get("/register", controller.pageGet("page/register/index", { title: "注册" }), { auth: false }) + router.get("/register", controller.registerGet.bind(controller), { auth: "try" }) router.post("/register", controller.registerPost.bind(controller), { auth: false }) + router.post("/logout", controller.logout.bind(controller), { auth: true }) return router } } diff --git a/src/db/index.js b/src/db/index.js index 5bc05aa..db7743d 100644 --- a/src/db/index.js +++ b/src/db/index.js @@ -1,21 +1,21 @@ import buildKnex from "knex" import knexConfig from "../../knexfile.mjs" -const cache = {} - -buildKnex.QueryBuilder.extend("cache", async function () { - try { - const cacheKey = this.toString() - if (cache[cacheKey]) { - return cache[cacheKey] - } - const data = await this - cache[cacheKey] = data - return data - } catch (e) { - throw new Error(e) - } -}) +// const cache = {} + +// buildKnex.QueryBuilder.extend("cache", async function () { +// try { +// const cacheKey = this.toString() +// if (cache[cacheKey]) { +// return cache[cacheKey] +// } +// const data = await this +// cache[cacheKey] = data +// return data +// } catch (e) { +// throw new Error(e) +// } +// }) const environment = process.env.NODE_ENV || "development" const db = buildKnex(knexConfig[environment]) diff --git a/src/db/migrations/20250616065041_create_users_table.mjs b/src/db/migrations/20250616065041_create_users_table.mjs index 0e401b2..a431899 100644 --- a/src/db/migrations/20250616065041_create_users_table.mjs +++ b/src/db/migrations/20250616065041_create_users_table.mjs @@ -6,7 +6,7 @@ export const up = async knex => { return knex.schema.createTable("users", function (table) { table.increments("id").primary() // 自增主键 table.string("username", 100).notNullable() // 字符串字段(最大长度100) - table.string("email", 100).unique().notNullable() // 唯一邮箱 + table.string("email", 100).unique() // 唯一邮箱 table.string("password", 100).notNullable() // 密码 table.string("role", 100).notNullable() table.string("phone", 100) diff --git a/src/db/seeds/20250621013324_site_config_seed.mjs b/src/db/seeds/20250621013324_site_config_seed.mjs index e182c53..ec3c7c5 100644 --- a/src/db/seeds/20250621013324_site_config_seed.mjs +++ b/src/db/seeds/20250621013324_site_config_seed.mjs @@ -6,10 +6,10 @@ export const seed = async (knex) => { await knex('site_config').insert([ { key: 'site_title', value: '罗非鱼的秘密' }, { key: 'site_author', value: '罗非鱼' }, + { key: 'site_author_avatar', value: 'https://alist.xieyaxin.top/p/%E6%B8%B8%E5%AE%A2%E6%96%87%E4%BB%B6/%E5%85%AC%E5%85%B1%E4%BF%A1%E6%81%AF/avatar.jpg' }, { key: 'site_description', value: '一屋很小,却也很大' }, { key: 'site_logo', value: '/static/logo.png' }, { key: 'site_bg', value: '/static/bg.jpg' }, - { key: 'keywords', value: 'blog' }, - { key: 'base', value: '/' } + { key: 'keywords', value: 'blog' } ]); }; diff --git a/src/middlewares/Views/index.js b/src/middlewares/Views/index.js index 4c69db1..2c685b3 100644 --- a/src/middlewares/Views/index.js +++ b/src/middlewares/Views/index.js @@ -25,6 +25,7 @@ function viewsMiddleware(path, { engineSource = consolidate, extension = "html", const otherData = { currentPath: ctx.path, $config: config, + isLogin: !!ctx.state && !!ctx.state.user, } if (renderOptions.includeSite) { otherData.$site = site diff --git a/src/middlewares/errorHandler/index.js b/src/middlewares/errorHandler/index.js index e0cda43..73de3d5 100644 --- a/src/middlewares/errorHandler/index.js +++ b/src/middlewares/errorHandler/index.js @@ -1,54 +1,52 @@ +import CommonError from "utils/error/CommonError" // src/plugins/errorHandler.js // 错误处理中间件插件 -function formatError(ctx, status, message, stack) { - const accept = ctx.accepts('json', 'html', 'text'); - const isDev = process.env.NODE_ENV === 'development'; - if (accept === 'json') { - ctx.type = 'application/json'; - ctx.body = isDev && stack - ? { success: false, error: message, stack } - : { success: false, error: message }; - } else if (accept === 'html') { - ctx.type = 'html'; - ctx.body = ` - - ${status} Error - -

${status} Error

-

${message}

- ${isDev && stack ? `
${stack}
` : ''} - - - `; - } else { - ctx.type = 'text'; - ctx.body = isDev && stack - ? `${status} - ${message}\n${stack}` - : `${status} - ${message}`; - } - ctx.status = status; +async function formatError(ctx, status, message, stack) { + const accept = ctx.accepts("json", "html", "text") + const isDev = process.env.NODE_ENV === "development" + if (accept === "json") { + ctx.type = "application/json" + ctx.body = isDev && stack ? { success: false, error: message, stack } : { success: false, error: message } + } else if (accept === "html") { + ctx.type = "html" + await ctx.render("error/index", { status, message, stack, isDev }) + } else { + ctx.type = "text" + ctx.body = isDev && stack ? `${status} - ${message}\n${stack}` : `${status} - ${message}` + } + ctx.status = status } export default function errorHandler() { - return async (ctx, next) => { - // 拦截 Chrome DevTools 探测请求,直接返回 204 - if (ctx.path === '/.well-known/appspecific/com.chrome.devtools.json') { - ctx.status = 204; - ctx.body = ''; - return; - } - try { - await next(); - if (ctx.status === 404) { - formatError(ctx, 404, 'Resource not found'); - } - } catch (err) { - const isDev = process.env.NODE_ENV === 'development'; - if (isDev && err.stack) { - console.error(err.stack); - } - formatError(ctx, err.statusCode || 500, err.message || err || 'Internal server error', isDev ? err.stack : undefined); + return async (ctx, next) => { + // 拦截 Chrome DevTools 探测请求,直接返回 204 + if (ctx.path === "/.well-known/appspecific/com.chrome.devtools.json") { + ctx.status = 204 + ctx.body = "" + return + } + try { + await next() + if (ctx.status === 404) { + await formatError(ctx, 404, "Resource not found") + } + } catch (err) { + console.error(err); + const isDev = process.env.NODE_ENV === "development" + if (isDev && err.stack) { + console.error(err.stack) + } + if (err instanceof CommonError) { + ctx.cookies.set("toast", JSON.stringify({ type: "error", message: encodeURIComponent(err.message) }), { + maxAge: 1, + httpOnly: false, + path: "/", + }) + ctx.redirect(ctx.path) + return + } + await formatError(ctx, err.statusCode || 500, err.message || err || "Internal server error", isDev ? err.stack : undefined) + } } - }; } diff --git a/src/middlewares/install.js b/src/middlewares/install.js index bc6bf96..d54cede 100644 --- a/src/middlewares/install.js +++ b/src/middlewares/install.js @@ -25,6 +25,7 @@ export default app => { { pattern: "/**/*", auth: false }, ], blackList: [ + // 禁用api请求 "/api", "/api/", "/api/**/*", diff --git a/src/services/userService.js b/src/services/userService.js index 960ff1d..d6065ce 100644 --- a/src/services/userService.js +++ b/src/services/userService.js @@ -1,5 +1,6 @@ import UserModel from "db/models/UserModel.js" import { hashPassword, comparePassword } from "utils/bcrypt.js" +import CommonError from "utils/error/CommonError" import { JWT_SECRET } from "@/middlewares/Auth/auth.js" import jwt from "@/middlewares/Auth/jwt.js" @@ -37,14 +38,12 @@ class UserService { // 注册新用户 async register(data) { - if (!data.username || !data.email || !data.password) throw new Error("用户名、邮箱和密码不能为空") + if (!data.username || !data.password) throw new CommonError("用户名、邮箱和密码不能为空") const existUser = await UserModel.findByUsername(data.username) - if (existUser) throw new Error("用户名已存在") - const existEmail = await UserModel.findByEmail(data.email) - if (existEmail) throw new Error("邮箱已被注册") + if (existUser) throw new CommonError(`用户名${data.username}已存在`) // 密码加密 const hashed = await hashPassword(data.password) - + const user = await UserModel.create({ ...data, password: hashed }) // 返回脱敏信息 const { password, ...userInfo } = Array.isArray(user) ? user[0] : user diff --git a/src/utils/error/CommonError.js b/src/utils/error/CommonError.js new file mode 100644 index 0000000..a7c1995 --- /dev/null +++ b/src/utils/error/CommonError.js @@ -0,0 +1,7 @@ +export default class CommonError extends Error { + constructor(message, redirect) { + super(message) + this.name = "CommonError" + this.status = 500 + } +} diff --git a/src/views/error/index.pug b/src/views/error/index.pug new file mode 100644 index 0000000..5d39c06 --- /dev/null +++ b/src/views/error/index.pug @@ -0,0 +1,8 @@ +html + head + title #{status} Error + body + h1 #{status} Error + p #{message} + if isDev && stack + pre(style="color:red;") #{stack} \ No newline at end of file diff --git a/src/views/htmx/footer.pug b/src/views/htmx/footer.pug index 666a02e..5b47b89 100644 --- a/src/views/htmx/footer.pug +++ b/src/views/htmx/footer.pug @@ -1,6 +1,7 @@ .footer-panel .footer-content - p © 2023-#{new Date().getFullYear()} #{$site.site_title}. 保留所有权利。 + p © 2023-#{new Date().getFullYear()} #{$site.site_author}. 保留所有权利。 + ul.footer-links li a(href="/") 首页 diff --git a/src/views/htmx/fuck.pug b/src/views/htmx/fuck.pug deleted file mode 100644 index b27ccf8..0000000 --- a/src/views/htmx/fuck.pug +++ /dev/null @@ -1,4 +0,0 @@ -if title - h1 #{title} -else - h1 默认标题 \ No newline at end of file diff --git a/src/views/htmx/navbar.pug b/src/views/htmx/navbar.pug index 5e83f76..e69de29 100644 --- a/src/views/htmx/navbar.pug +++ b/src/views/htmx/navbar.pug @@ -1,2 +0,0 @@ -nav.navbar - .title 首页 \ No newline at end of file diff --git a/src/views/htmx/timeline.pug b/src/views/htmx/timeline.pug index 4766f11..6849e9b 100644 --- a/src/views/htmx/timeline.pug +++ b/src/views/htmx/timeline.pug @@ -3,48 +3,10 @@ ul.time-line each item in _dataList li.time-line-item .timeline-icon - div #{item.icon} + div !{item.icon} .time-line-item-content - .time-line-item-title #{item.title} - .time-line-item-desc #{item.desc} - li.time-line-item - .timeline-icon - div 第一份工作 - .time-line-item-content - .time-line-item-title ??? - .time-line-item-desc 做游戏的。 - li.time-line-item - .timeline-icon - div 大学毕业 - .time-line-item-content - .time-line-item-title 2014年09月 - .time-line-item-desc 我从 - a(href="https://www.jxnu.edu.cn/" target="_blank") 江西师范大学 - span 毕业,获得了软件工程(虚拟现实与技术)专业的学士学位。 - li.time-line-item - .timeline-icon - div 高中 - .time-line-item-content - .time-line-item-title ??? - .time-line-item-desc 宜春中学 - li.time-line-item - .timeline-icon - div 初中 - .time-line-item-content - .time-line-item-title ??? - .time-line-item-desc 宜春实验中学 - li.time-line-item - .timeline-icon - div 小学 - .time-line-item-content - .time-line-item-title ??? - .time-line-item-desc 宜春二小 - li.time-line-item - .timeline-icon - div 出生 - .time-line-item-content - .time-line-item-title 1996年06月 - .time-line-item-desc 我出生于江西省丰城市泉港镇。 + .time-line-item-title !{item.title} + .time-line-item-desc !{item.desc} style. .time-line { display: flex; diff --git a/src/views/layouts/base.pug b/src/views/layouts/base.pug index cc6c9ec..f59a22a 100644 --- a/src/views/layouts/base.pug +++ b/src/views/layouts/base.pug @@ -22,19 +22,22 @@ doctype html html(lang="zh-CN") head block head - title #{$site && $site.site_title || ''} - meta(name="description" content=$site && $site.site_description || '') - meta(name="keywords" content=$site && $site.keywords || '') + title #{site_title || $site && $site.site_title || ''} + meta(name="description" content=site_description || $site && $site.site_description || '') + meta(name="keywords" content=keywords || $site && $site.keywords || '') if $site && $site.site_favicon - +link($site.site_favicon, '') + link(rel="shortcut icon", href=$site.site_favicon) meta(charset="utf-8") meta(name="viewport" content="width=device-width, initial-scale=1") +css('reset.css') +js('lib/htmx.min.js') - //- +css('https://unpkg.com/simplebar@latest/dist/simplebar.css', true) - //- +css('simplebar-shim.css') - //- +js('https://unpkg.com/simplebar@latest/dist/simplebar.min.js', true) - body(style="--bg:url("+($site && $site.site_bg || '#fff')+")") + +js('https://cdn.tailwindcss.com') + +css('https://unpkg.com/simplebar@latest/dist/simplebar.css', true) + +css('simplebar-shim.css') + +js('https://unpkg.com/simplebar@latest/dist/simplebar.min.js', true) + //- body(style="--bg:url("+($site && $site.site_bg || '#fff')+")") + //- body(style="--bg:url(./static/bg2.webp)") + body noscript style. .simplebar-content-wrapper { @@ -48,8 +51,103 @@ html(lang="zh-CN") width: initial; height: initial; } - //- div(data-simplebar style="height: 100%") - //- block content - //- block scripts - block content - block scripts + div(data-simplebar style="height: 100%") + div(style="height: 100%; display: flex; flex-direction: column" id="aaaa") + block content + block scripts + +js('lib/bg-change.js') + script. + const el = document.querySelector('.simplebar-content-wrapper') + const scrollTop = sessionStorage.getItem('scrollTop-'+location.pathname) + el.scrollTop = scrollTop + el.addEventListener("scroll", function(e) { + sessionStorage.setItem('scrollTop-'+location.pathname, e.target.scrollTop) + }) + function getCookie(cname) { + var name = cname + "="; + var decodedCookie = decodeURIComponent(document.cookie); + var ca = decodedCookie.split(';'); + for(var i = 0; i { + toast.style.opacity = '0'; + setTimeout(() => { + if (toast.parentNode) toast.parentNode.removeChild(toast); + }, 300); + }; + + const resetTimer = () => { + clearTimeout(timer); + timer = setTimeout(removeToast, 5000); + }; + + toast.addEventListener('mouseenter', resetTimer); + toast.addEventListener('mouseleave', resetTimer); + + container.appendChild(toast); + resetTimer(); + } + + try { + const toastObj = JSON.parse(msg); + showToast(toastObj.message, toastObj.type); + } catch (e) { + showToast(msg); + } + } diff --git a/src/views/page/auth/no-auth.pug b/src/views/page/auth/no-auth.pug index 2a952ba..5db22eb 100644 --- a/src/views/page/auth/no-auth.pug +++ b/src/views/page/auth/no-auth.pug @@ -48,7 +48,7 @@ block pageHead color: #fff200; } -block pageScripts - script. - const curUrl = URL.parse(location.href).searchParams.get("from") - fetch(curUrl,{redirect: 'error'}).then(res=>location.href=curUrl).catch(e=>console.log(e)) \ No newline at end of file +//- block pageScripts +//- script. + //- const curUrl = URL.parse(location.href).searchParams.get("from") + //- fetch(curUrl,{redirect: 'error'}).then(res=>location.href=curUrl).catch(e=>console.log(e)) \ No newline at end of file diff --git a/src/views/page/index/index copy.pug b/src/views/page/index/index copy.pug new file mode 100644 index 0000000..6c53ce1 --- /dev/null +++ b/src/views/page/index/index copy.pug @@ -0,0 +1,17 @@ +extends /layouts/pure.pug + +block pageHead + +css("css/page/index.css") + +block pageContent + .home-hero + .avatar-container + .author #{$site.site_author} + img.avatar(src=$site.site_author_avatar, alt="") + .card + div 人生轨迹 + +include() + - var timeLine = [{icon: "第一份工作",title: "???", desc: `做游戏的。`, } ] + include /htmx/timeline.pug + //- div(hx-get="/htmx/timeline" hx-trigger="load") + //- div(style="text-align:center;color:white") Loading diff --git a/src/views/page/index/index.pug b/src/views/page/index/index.pug index 8b5ff59..12cdb2d 100644 --- a/src/views/page/index/index.pug +++ b/src/views/page/index/index.pug @@ -4,12 +4,6 @@ block pageHead +css("css/page/index.css") block pageContent - .home-hero - .avatar-container - .author #{$site.site_author} - img.avatar(src="https://alist.xieyaxin.top/p/%E6%B8%B8%E5%AE%A2%E6%96%87%E4%BB%B6/%E5%85%AC%E5%85%B1%E4%BF%A1%E6%81%AF/avatar.jpg", alt="") - .card - div 人生轨迹 - +include() - - let timeLine = [{icon: '11',title: "aaaa",desc:"asd"}] - include /htmx/timeline.pug \ No newline at end of file + div(class="mt-[50px]") + +include() + include /htmx/navbar.pug \ No newline at end of file diff --git a/src/views/page/register/index.pug b/src/views/page/register/index.pug index b6dec11..79a5902 100644 --- a/src/views/page/register/index.pug +++ b/src/views/page/register/index.pug @@ -1,9 +1,6 @@ -doctype html -html - head - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1.0") - title 注册 +extends /layouts/pure.pug + +block pageHead style. body { background: #f5f7fa; @@ -43,6 +40,7 @@ html font-size: 1rem; background: #f9fafb; transition: border 0.2s; + box-sizing: border-box; } input:focus { border-color: #409eff; @@ -74,7 +72,8 @@ html } .login-link:hover { text-decoration: underline; - body + +block pageContent .register-container .register-title 注册账号 form(action="/register" method="post") @@ -82,9 +81,6 @@ html label(for="username") 用户名 input(type="text" id="username" name="username" required placeholder="请输入用户名") .form-group - label(for="email") 邮箱 - input(type="email" id="email" name="email" required placeholder="请输入邮箱") - .form-group label(for="password") 密码 input(type="password" id="password" name="password" required placeholder="请输入密码") .form-group