美文网首页
关于Koa中所常用的一些中间件

关于Koa中所常用的一些中间件

作者: 时不我与_ | 来源:发表于2020-03-08 13:35 被阅读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的方法来进行各种验证操作,很多时候大家都会拿这两个进行比较,但是(我全都要!)

    好了大佬们,本次的中间件介绍也就这样了,其实还是有很多其他的优秀的中间件的,我们也需要一直不断的学习,才能了解更多更多。希望自己有一天也能像大家一样成为大佬。加油!

    相关文章

      网友评论

          本文标题:关于Koa中所常用的一些中间件

          本文链接:https://www.haomeiwen.com/subject/scyddhtx.html