You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.8 KiB
76 lines
2.8 KiB
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
|
|
}
|
|
}
|
|
|