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

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
}
}