快速搭建可用于实战的koa2+mongodb框架

源码地址戳这里

ps:GitHub上面的源码直接链接了我本人的云数据库,可临时提供给小伙伴们调试与使用。

mac下安装mongodb可以参考这里:Mac安装Mongdb - chendong_的博客 - CSDN博客


1.使用koa-generator生成koa2项目

1.1 全局安装koa-generator
npm install -g koa-generator复制代码
1.2 使用命令生成项目基本目录
koa2 hello-koa2-mongodb复制代码
1.3 创建项目成功之后进入项目目录,进行依赖安装
cd hello-koa2-mongodb && npm install复制代码
1.4 运行命令预览一下
npm start复制代码
浏览器打开 http://localhost:3000/

2.目录结构

因为现在的项目基本上都是前后端分离,所以我这里只编写的框架中并不带模版。然后我们需要改造一下目录结构,详细代码可移步 这里
config: 一些公共的配置,如数据库地址
controller: 控制器层
dbHelper: 链接mongodb
error: 实现统一异常处理
middleware: 各种中间件
model: 实体类
router: 路由信息(api接口地址)
utils: 各种工具类

3.代码实现

koa的项目中引用文件都是采用require,对于习惯了使用import关键字的小伙伴可以这样解决:在项目中引入babel-plugin-add-module-exports与babel-register
npm install babel-plugin-add-module-exports babel-register --save-dev复制代码
并在根目录下创建一个.babelrc的文件
{
  "presets": ["es2015", "stage-3"],
  "plugins": ["add-module-exports"]
}复制代码
并在入口文件中require('babel-register')

3.1 入口文件:src/app.js


3.2 连接mongodb等设置:src/config/index.js


3.3 router,路由信息,即api地址:src/router/index.js


3.4 controller控制器
这里使用了class,习惯写fucntion的小伙伴用function也是一样的

3.5 model实体


下面这样可以配置mongoose自动更新createTime和updateTime

4 统一异常处理

如果是写java的小伙伴都知道,统一的异常处理是非常有必要的

ApiErrorNames.js定义异常code码


ApiError.js实现统一异常处理
注意:为什么不用class,因为用了babel,class会被编译成es5,导致instanceof没用复制代码

5 jwt验证

  1. 使用jsonwebtoken库
npm i jsonwebtoken  // 一个实现jwt的包复制代码
自己实现一个jwt校验中间件 (也可以直接使用koa-jwt)


在需要校验的接口上加上verify就行了

ps: 细心的小伙伴可能发现了,为什么没有service层啊!! service要的要的,大家自行加上[坏笑]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值