美文网首页
模块架子初探

模块架子初探

作者: 离子来了 | 来源:发表于2016-07-23 09:49 被阅读463次

    koa

    koa安装 npm install koa@2
    当安装的目录不是全局,而是相应文件夹的时候,请在相应的文件夹下主动创建<code>node_modules</code>
    由于koa2还未全面支持,

    redis --koa-redis-pool
    const redisPool = require('koa-redis-pool')
    //redis中间件
    app.use(convert(redisPool({ //redis配置  convert将其转换成promise异步
      host: 'localhost',
      port: 6379,
      max: 100,
      min: 1,
      timeout: 30000,
      log: false,
      db: 0
    })))
    //使用redis
    app.use(async (ctx, next) => {
      ctx.redis.set('name1','liyang')//redis 设置值
      console.log(await ctx.redis.get('name')) //redis 取出缓存的值,注意<code>await</code>
    })
    

    mongo --koa-mongo

    const mongo  = require('koa-mongo')
    
    app.use(convert(mongo({ 
      uri: 'mongodb://localhost:27017/user',
      max: 100,
      min: 1,
      timeout: 30000,
      log: false})
    ))
    
    const f = await ctx.mongo.db("user").collection("user").findOne();
    

    nodemon --nodemon

    该模块的作用就是在使用避免每次更改的时候要重启node运行,这个模块的作用就是监听js文件的更改,然后重新运行

    nodemon app.js //具体使用方法进去github里面,
    

    runkoa--runkoa

    用于语法兼容es6,不需要重复导入<code>babel</code>

    npm install runkoa
    app.use(require('koa-static')(__dirname + '/public'))
    

    koa-convert--convert

    用于将中间件转换成koa2可以使用的中间件

    app.use(convert(staticserver(__dirname + "/public")))
    

    koa-views--koa-views

    koa的视图渲染模块,注意安装的时候使用支持koa2的(最近出了个错误就是实用koa1的了,老找不出代码错误)

    npm install koa-views@next
    app.use(convert(views(__dirname + '/views', { map: {html: 'nunjucks' }})))
    router.get("/",async (ctx,next) => {    
        await ctx.render("index.html",{title:"tt"})
    });
    

    koa-router--koa-router

    koa的路由模块,还是注意使用koa2支持的

    npm install koa-router@next
    

    koa-logger --logger日志 支持2.0

    npm install koa-logger@2
    

    onerror--onerror

    npm install koa-onerror
    

    koa-cors--koa-cors做跨域处理的(没有测试过)

    npm install koa-cors
    

    koa-better-body处理请求参数的(post)

    这里描述下情况,玩koa2的时候bodyparser总是解析不了参数,所以采用这个中间件,这个中间件可以处理application/x-www-form-urlencoded、multipart/form-data、application/json的类型

    npm i koa-better-body --save //--save的作用就是在package.json里面加上依赖
    
    从header里面取数据,不用任何中间件
    ctx.request.header.token//这样就可以把存在header里面的token取到
    
    get请求取出数据,不用依赖任何中间件
    ctx.request.query//结果是一个对象,get拼接的参数组成的,直接取
    
    post请求取出数据,依赖上面的koa-beeter-body
    ctx.request.fields//参数对象
    ctx.request.fields.file1[0].path//上传文件的地址,这个地址是一个物理地址(这里具体使用的时候可能会使用文件操作的中间件来处理)
    
    

    keygrip

    koa用于cookies签名

    npm install keygrip
    import Keygrip from 'keygrip'
    app.keys = new Keygrip(['im a newer secret', 'i like turtle'], 'sha256')//设置签名密钥
    var name = ctx.request.fields.name //从post请求中取出参数
    ctx.cookies.set("name",name,{signed:true})// 第三个参数设置是否签名
    console.log(ctx.cookies.get("name")) //自动就回解出签名的串
    
    签名后的字符串.png
    node-uuid--node-uuid

    联想到iOS的uuid就可以了

    shelljs使用

    nodejs执行shell脚本或者命令

    npm install --save shelljs //安装
    
    import fs from 'fs'
    import shell from 'shelljs' 
    const inputStr  = "inputstr"
    fs.watchFile(inputStr,()=>{
        console.log("文件变动")
        shell.exec("rm -r originpath")//删除历史目录
        shell.exec("cp -r originpath newpath")//copy目录
    })
    

    相关文章

      网友评论

          本文标题:模块架子初探

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