vue2.0+koa2+mongodb实现注册登录(5)
代码最后暴露了四个请求方法,分别对应注册(register)、登录(login)、获取(user)、删除(delUser)用户,并且都在/api下面,四个请求接口分别是:
http://localhost:8080/api/login
http://localhost:8080/api/register
http://localhost:8080/api/user
http://localhost:8080/api/delUser
后面我们再利用这四个方法写相对应的后台接口。
服务端 server
注意
文章从这里开始进入服务端,由于服务端需要和数据库、http安全通讯(jwt)共同搭建,因此请结合本节和下面的数据库、jwt章节阅读。
koa2可以使用可以使用async/await语法,免除重复繁琐的回调函数嵌套,并使用ctx来访问Context对象。
现在我们用koa2写项目的API服务接口。
安装
$ cnpm i koa $ cnpm i koa-router -S //koa路由中间件 $ cnpm i koa-bodyparser -S //处理post请求,并把koa2上下文的表单数据解析到ctx.request.body中
引入
const Koa = require('koa');
在项目根目录下面新建server.js,作为整个server端的启动入口。
//server.js const Koa = require('koa'); const app = new Koa(); //router const Router = require('koa-router'); //父路由 const router = new Router(); //bodyparser:该中间件用于post请求的数据 const bodyParser = require('koa-bodyparser'); app.use(bodyParser()); //引入数据库操作方法 const UserController = require('./server/controller/user.js'); //checkToken作为中间件存在 const checkToken = require('./server/token/checkToken.js'); //登录 const loginRouter = new Router(); loginRouter.post('/login', UserController.Login); //注册 const registerRouter = new Router(); registerRouter.post('/register', UserController.Reg); //获取所有用户 const userRouter = new Router(); userRouter.get('/user', checkToken, UserController.GetAllUsers); //删除某个用户 const delUserRouter = new Router(); delUserRouter.post('/delUser', checkToken, UserController.DelUser); //装载上面四个子路由 router.use('/api',loginRouter.routes(),loginRouter.allowedMethods()); router.use('/api',registerRouter.routes(),registerRouter.allowedMethods()); router.use('/api',userRouter.routes(),userRouter.allowedMethods()); router.use('/api',delUserRouter.routes(),delUserRouter.allowedMethods()); //加载路由中间件 app.use(router.routes()).use(router.allowedMethods()); app.listen(8888, () => { console.log('The server is running at http://localhost:' + 8888); });
代码里可以看到,获取用户和删除用户都需要验证token(详见下文jwt章节),并且我们把四个接口挂在到了/api上,和前面axios的请求路径一致。
接口地址配置