之前一直使用koa和express构建过一些小的应用,但是都是没有放到线上去跑。这回,我的想法是把自己那台学生服务器拿来充分利用一下,话不多说,直接直奔主题吧。
使用的技术栈:
- nodejs
- koa2(网络编程框架)
- mongodb(非关系型数据库)
- jwt(用于鉴权)
- pm2(用于跑启动脚本)
何为REST?何为restful api?
表现层状态转换(英语:Representational State Transfer,缩写:REST)是Roy Thomas Fielding博士于2000年在他的博士论文中提出来的一种万维网软件架构风格
restful api:则是符合REST风格的api
koa 洋葱模型
1 | 复制代码app.use(async (ctx, next) => { |
如何在写一个koa中间件
1 | 复制代码const auth = async (ctx,next) => { |
开始搭建目录结构
- 起一个简单的服务
1 | 复制代码const Koa = require('koa') |
- 搭建路由,编写自动读取路由中间件
1 | 复制代码// routing |
- 解决post请求ctx.request.body为undefined问题
1 | 复制代码const KoaBodyPareser = require('koa-bodyparser') |
- 连接数据库
1 | 复制代码const mongoose = require('mongoose') |
- 错误处理
1 | 复制代码const error = require('koa-json-error') |
- 参数格式校验
1 | 复制代码app.use(parameter(app)) |
实现用户接口的增删改查
- 定义用户的数据层model
1 | 复制代码const mongoose = require('mongoose') |
- 用户的路由层router
1 | 复制代码const KoaRouter = require('koa-router') |
- 用户的控制器controller
1 | 复制代码const jsonwebtoken = require('jsonwebtoken') |
postman的使用
- 新建collection
- 在collection中新建request
- 在登录接口中的Test中设置token为全局变量
1 | 复制代码let jsonData = pm.response.json() |
- 在其他需要验证的接口中Authization使用token
这就是项目大构建和用户接口的实现了,好记性不如烂笔头,特此总结, 下次将是图片上传几款的实践。
本文转载自: 掘金