前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速搭建可用于实战的koa2+mongodb框架

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

作者头像
前端黑板报
发布2019-03-08 10:19:59
1.6K0
发布2019-03-08 10:19:59
举报
文章被收录于专栏:前端黑板报前端黑板报

准备工作

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

源码地址戳这里:

chenyucai/hello-koa2-mongodbgithub.com

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

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

1.1 全局安装koa-generator

代码语言:javascript
复制
npm install -g koa-generator

1.2 使用命令生成项目基本目录

代码语言:javascript
复制
koa2 hello-koa2-mongodb

1.3 创建项目成功之后进入项目目录,进行依赖安装

代码语言:javascript
复制
cd hello-koa2-mongodb && npm install

1.4 运行命令预览一下

代码语言:javascript
复制
npm start

浏览器打开localhost:3000/

2.目录结构

因为现在的项目基本上都是前后端分离,所以我这里只编写的框架中并不带模版。然后我们需要改造一下目录结构,详细代码可移步这里

config: 一些公共的配置,如数据库地址

controller: 控制器层

dbHelper: 链接mongodb

error: 实现统一异常处理

middleware: 各种中间件

model: 实体类

router: 路由信息(api接口地址)

utils: 各种工具类

3.代码实现

koa的项目中引用文件都是采用require,对于习惯了使用import关键字的小伙伴可以这样解决:在项目中引入babel-plugin-add-module-exports与babel-register

代码语言:javascript
复制
npm install babel-plugin-add-module-exports babel-register --save-dev

并在根目录下创建一个.babelrc的文件

代码语言:javascript
复制
{
  "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实现统一异常处理

代码语言:javascript
复制
注意:为什么不用class,因为用了babel,class会被编译成es5,导致instanceof没用

5 jwt验证

  1. 使用jsonwebtoken库
代码语言:javascript
复制
npm i jsonwebtoken  // 一个实现jwt的包

自己实现一个jwt校验中间件 (也可以直接使用koa-jwt)

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端黑板报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 2.目录结构
  • 3.代码实现
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档