关于Koa中所常用的一些中间件
2020-03-08 本文已影响0人
时不我与_
koa扩展性相对来说是比较高的,在开发过程中,我们根据自己的需要可以进行相应的中间件的添加以及扩展。那本章的话我们就介绍一下常用的一些Koa的中间件以及其功能。
首先是 koa-bodyparser
const bodyparser = require('koa-bodyparser')
app.use(bodyparser({
enableTypes: ['json', 'form', 'text']
}))
- Koa的bodyparser是用来转换前台数据请求后所携带的内容的,主要是用于Post请求中。它会以一个对象的形式传递过来,我们只需要在代码中使用,ctx.request.body就可以进行请求中相应内容的获取了。
还有就是 koa2-cors
const cors = require("koa2-cors");
app.use(cors());
- 在平时我们服务端开发的过程中,在相同的服务器内还不会出现跨域问题,但是如果是你的接口已经上传到了远端服务器,但是你在本地开发就会遇到跨域的问题,所以我们可以通过使用该中间件来解决跨域的问题。
--- mongoose
const mongoose = require('mongoose');
mongoose.connect(db, {
useNewUrlParser: true
})
.then(() => {
console.log("MongoDB Connect...")
})
.catch(err => {
console.log(err)
})
- 用Nodejs来做后台的很多是用mongodb作为后台数据库的,所以我们可以通过Mongoose来进行数据库的控制以及操作。
const Sequelize = require("sequelize")
- 不可避免的我们也可能会使用到MySQL来进行后台数据库的搭建,那么我们为了方便操作,也可以使用Sequesize来进行MySQL数据库模型的创建、表的增删改查。
--- koa-static
const serve = require('koa-static')
app.use(serve(__dirname + '/public/'));
- Koa-static是用来管理静态资源目录的中间件,它也是上传文件等必不可少的中间件。
koa-redis
const redisStore = require('koa-redis')
- 说到Redis的话大家应该都不陌生,相对于Mysql硬盘数据库来说的内存数据库。在很多地方我们需要做缓存的就会用到该插件了。
const KoaJwt = require('koa-jwt')
app.use(KoaJwt({
secret:SECRET
}).unless({
path:[/^\/users\/register/] //自定义目录忽略JWT验证
}))
- 作为后台,我们肯定会涉及到登录的一些操作了,JsonWebToken作为现在较为普遍的身份验证方法,我们还是有必要知道的。而Koa也有对应的Koa-jwt方法来进行身份验证。
const session = require('koa-generic-session')
app.use(session({
key: 'koa.sid', //cookie name 默认是·koa.sid·
prefix: 'koa:sess:', //REDIS key的前缀 ,默认是`koa:sess:`
cookie: {
path: '/',
httpOnly: true,
maxAge: 24 * 60 * 60 * 1000 //单位为ms
},
store: redisStore({
all: `${REDIS_CONF.host}:${REDIS_CONF.port}`
})
}))
- 除了Jwt进行身份验证以外,我们服务端也可以通过使用session的方法来进行各种验证操作,很多时候大家都会拿这两个进行比较,但是(我全都要!)
好了大佬们,本次的中间件介绍也就这样了,其实还是有很多其他的优秀的中间件的,我们也需要一直不断的学习,才能了解更多更多。希望自己有一天也能像大家一样成为大佬。加油!