美文网首页
模块架子初探

模块架子初探

作者: 离子来了 | 来源:发表于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目录
})

相关文章

  • 模块架子初探

    koa koa安装 npm install koa@2当安装的目录不是全局,而是相应文件夹的时候,请在相应的文件夹...

  • Nginx限速模块初探

    转载:Nginx限速模块初探 云栖君导读:Nginx限速模块分为哪几种?按请求速率限速的burst和nodelay...

  • Kotlin转Java记录

    昨天写了一篇PermissionsDispatcher初探,文章最后说要用java重写processor模块,今天...

  • [转]Nginx限速模块初探

    转自 Nginx限速模块初探 Nginx限速模块分为哪几种?按请求速率限速的burst和nodelay参数是什么意...

  • Nginx服务器架构初探

    Nginx服务器架构初探 Nginx模块化结构 核心模块,是指Nginx服务器正常运行必不可少的模块,它们提供了N...

  • JS模块化工具requirejs简易版初级探索

    Requirejs是非常小巧的模块载入框架,很好的实现AMD思想。今天初探requirejs,下面写个小demo。...

  • Kubernetes Ingress 模块初探

    Ingress是Kubernetes中用于对Service进行公网负载均衡的一个模块,要使用ingress资源,必...

  • Nginx限速模块初探

    Nginx限速模块分为哪几种?按请求速率限速的burst和nodelay参数是什么意思?漏桶算法和令牌桶算法究竟有...

  • 模块化初探

    1. 为什么要使用模块化? 随着互联网技术的发展,网页的JavaScript代码越来越庞大,越来越复杂,复杂的网页...

  • 组件化

    组件化初探 组件化其实就是将模块单独抽离、分层,并指定模块间的通讯方式,从而实现解耦的一种方式,主要运用与团队开发...

网友评论

      本文标题:模块架子初探

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