import Router from "utils/router.js" import UserService from "services/UserService.js" class PageController { constructor() { this.userService = new UserService() } async index(ctx) { const user = ctx.state.user return await ctx.render("page/index/index", { title: "沧源一场", user: user }) } async loginPost(ctx) { const { username, email, password } = ctx.request.body const result = await this.userService.login({ username, email, password }) ctx.session.user = result.user ctx.body = { success: true, message: "登录成功" } } async registerPost(ctx) { const { username, email, password } = ctx.request.body await this.userService.register({ username, email, password }) return ctx.redirect("/login") } page(name, data) { return async ctx => { return await ctx.render(name, data) } } static createRoutes() { const controller = new PageController() const router = new Router({ auth: "try" }) router.get("/", controller.index.bind(controller)) router.get("/login", controller.page("page/login/index", { title: "登录" }), { auth: false }) router.post("/login", controller.loginPost.bind(controller), { auth: false }) router.get("/register", controller.page("page/register/index", { title: "注册" }), { auth: false }) router.post("/register", controller.registerPost.bind(controller), { auth: false }) return router } } export default PageController