import Router from "utils/router.js" import { logger } from "@/logger.js" import BaseController from "@/base/BaseController.js" export default class CommonController extends BaseController { constructor() { super() } pageGet(...args) { return ctx => { return ctx.render(...args) } } async bindLocGet(ctx){ // ctx.session.loc = 1 // 记录地点 return await ctx.render("page/bind-loc", {}) } // 首页 async indexGet(ctx) { // 可以在这里添加一些需要用户信息的逻辑 // 例如获取用户相关的统计数据等 const user = ctx.state.user || null // 获取请求的IP地址 const ip = ctx.request.ip || ctx.ip || (ctx.req && ctx.req.connection && ctx.req.connection.remoteAddress) || null const res = await fetch("https://restapi.amap.com/v3/ip?key=5bd92438c102ddf15083a46cf705decf&ip=" + ip) const data = await res.json() console.log(ip) console.log(data) // 示例数据,实际项目中可以从数据库获取 const stats = { articles: 1234, users: 567, categories: 89, responseTime: "24h", } return await ctx.render("page/index/index", { stats, // 其他需要传递给模板的数据 }) } /** * 创建基础页面相关路由 * @returns {Router} 路由实例 */ static createRoutes() { const controller = new CommonController() const router = new Router({ auth: "try" }) // 首页 router.get("", controller.handleRequest(controller.indexGet), { auth: "try" }) router.get("/", controller.handleRequest(controller.indexGet), { auth: "try" }) router.get("/bind-loc", controller.handleRequest(controller.bindLocGet), { auth: "try" }) // router.get("/about", controller.handleRequest(controller.pageGet("page/about/index"))) router.get("/contact", controller.handleRequest(controller.pageGet("page/extra/contact"))) router.get("/faq", controller.handleRequest(controller.pageGet("page/extra/faq"))) router.get("/feedback", controller.handleRequest(controller.pageGet("page/extra/feedback"))) router.get("/help", controller.handleRequest(controller.pageGet("page/extra/help"))) router.get("/privacy", controller.handleRequest(controller.pageGet("page/extra/privacy"))) router.get("/terms", controller.handleRequest(controller.pageGet("page/extra/terms"))) router.get("/about", controller.handleRequest(controller.pageGet("page/extra/about"))) router.get("/no-auth", controller.handleRequest(controller.pageGet("page/auth/no-auth"))) return router } }