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//上传文件的地址,这个地址是一个物理地址(这里具体使用的时候可能会使用文件操作的中间件来处理)
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目录
})
网友评论