base.js
封装公共方法,如success,error
目录结构
文件内容
router.js
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/login', controller.user.login);
router.get('/register', controller.user.register);
router.post('/doLogin', controller.user.doLogin);
router.post('/doRegister', controller.user.doRegister);
};
core/base.js
'use strict';
const Controller = require('egg').Controller;
class BaseController extends Controller {
async success(redirectUrl) {
await this.ctx.render('public/success', {
redirectUrl: redirectUrl || '/',
});
}
async error(redirectUrl) {
await this.ctx.render('public/error', {
redirectUrl: redirectUrl || '/',
});
}
}
module.exports = BaseController;
controller/user.js
'use strict';
const BaseController = require('../core/base.js');
class UserController extends BaseController {
async login() {
await this.ctx.render('login');
}
async register() {
await this.ctx.render('register');
}
async doLogin() {
await this.success('/login');
}
async doRegister() {
await this.error('/register');
}
}
module.exports = UserController;
error.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="refresh" content="3;url={{redirectUrl}}">
<title>Document</title>
</head>
<body>
<h1 style="font-size: 60px; color:red;">失败 error!</h1>
</body>
</html>
success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="refresh" content="3;url={{redirectUrl}}">
<title>Document</title>
</head>
<body>
<h1 style="font-size: 60px;">成功 success ! </h1>
</body>
</html>
效果
路由跳转顺序
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。