项目重构
项目目录:
| controller
- user.js
| service
- user.js
| routers
- index.js
- user.js
app.js
重构(一)
1、修改app.js
const koa = require('koa');
const bodyParser = require('koa-bodyparser');
const router = require('koa-router')();
// const index = require('./routers/index');
const app = new koa();
app.use(bodyParser());
// router.use('/',index.routes(), index.allowedMethods());
router.use('/user',user.routes(), user.allowedMethods());
app.use(router.routes(), router.allowedMethods());
app.listen('3000',()=>{
console.log('server is running at http://127.0.0.1:3000');
});
重构(二)
1、修改app.js
const koa = require('koa');
const bodyParser = require('koa-bodyparser');
const router = require('./routers/index');
const app = new koa();
app.use(bodyParser());
router(app);
app.listen('3000',()=>{
console.log('server is running at http://127.0.0.1:3000');
});
2、router/index.js
const router = require('koa-router')();
const user = require('./user');
module.exports = (app) => {
router.use('/user',user.routes(), user.allowedMethods());
app.use(router.routes(), router.allowedMethods());
}
以下代码相同:
router/user.js
const router = require('koa-router')();
const userController = require('../controller/user');
router.get('/', function (ctx, next) {
ctx.body = 'this a users response!';
});
router.get('/postData', userController.postData);
router.post('/register', userController.register);
module.exports = router;
controller/user.js
const UserService = require('../service/user')
exports.postData = async (ctx,next)=>{
ctx.body =
`
<form action="http://127.0.0.1:3000/user/register" method="post">
<input name="name" type="text" placeholder="请输入用户名:zw"/>
<br/>
<input name="password" type="text" placeholder="请输入密码:123456"/>
<br/>
<button>提交</button>
</form>
`
}
exports.register = async (ctx,next)=>{
console.log(JSON.stringify(ctx.request.body));
let body = ctx.request.body;
let data = await UserService.register(body.name, body.password);
ctx.body = data;
}
service/user.js
exports.register = async (name,pwd)=>{
let data;
if(name == 'zw' && pwd == '123'){
data = `welcom ${name}`
}else{
data = '信息有问题'
}
return data;
}
项目地址:https://github.com/MisterZhouZhou/Koa2-learnDayByDay/tree/day1/koa2-learnday1