koa2笔记
2018-09-20 本文已影响0人
处在水深火热的iOS_林龙
运行环境:Linux
工具:docker,node,npm
使用docker是为了解决微服务化且为了不影响到本地的其他环境。通过docker来编写demo是最直接最方便的方法。
docker 环境配置
获取node镜像
docker pull node
创建node容器
docker run -i -t --name koa2 -p 8000:8000 node /bin/bash
可以参考docker笔记
创建koa2项目
创建目录及打开
mkdir koa2 && cd koa2
npm创建及拉取koa库
npm init && npm install koa
创建入口文件
touch index.js
编辑koa2项目
vi index.js
var koa = require("koa") //导入koa库
var app = new koa() // 创建koa实例
app.use(async (ctx)=>{
let url = ctx.url; //请求url
let request = ctx.request; //请求头参数
let req_query = ctx.query; //请求url参数
let req_querystring = ctx.querystring; //请求url参数字符串
ctx.body = { //请求响应
url,
request,
req_query,
req_querystring
}
})
app.listen(8000,()=>{ //监听端口,成功回调
console.log("this is hello koa")
});
运行项目
node index.js
post获取post方法中的参数
1.自己编写获取post 参数
var koa = require("koa") //导入koa库
var app = new koa() // 创建koa实例
app.use(async (ctx)=>{
if (ctx.method === "get"){
ctx.body="this is get method"
}else{
let postData = await parsePostData(ctx)
ctx.body=postData
}
})
function parsePostData(ctx){
return new Promise((res,rej)=>{
try{
let postData="";
ctx.req.on("data",(data)=>{
postData += data;
});
ctx.req.addListener("end",()=>{
res(postData)
})
}catch(err){
rej(err)
}
})
}
app.listen(8000,()=>{ //监听端口,成功回调
console.log("this is hello koa")
});
2.框架
npm install koa-bodyparser
var koa = require("koa") //导入koa库
var bodyparser = require('koa-bodyparser')
var app = new koa() // 创建koa实例
app.use(bodyparser())
app.use(async (ctx)=>{
if (ctx.method === "get"){
ctx.body="this is get method"
}else{
let postData = ctx.request.body
ctx.body=postData
}
})
app.listen(8000,()=>{ //监听端口,成功回调
console.log("this is hello koa")
});
router
npm install koa-router
var koa = require("koa")
var bodyparser = require('koa-bodyparser')
var Router = require("koa-router")
var app = new koa()
var router = new Router()
router.get('/',(ctx,next)=>{
ctx.body = "this is /"
})
router.get("/sleep",(ctx,next)=>{
ctx.body = "this is /sleep"
})
app.use(bodyparser())
app.use(router.routes())
.use(router.allowedMethods());
app.listen(8000,()=>{
console.log("koa2 start")
})
cookies
var koa = require("koa")
var bodyparser = require('koa-bodyparser')
var Router = require("koa-router")
var app = new koa()
var router = new Router()
router.get('/',(ctx,next)=>{
ctx.cookies.set("xxxx","zzzzz")
ctx.body = "setCookies"
})
router.get("/getCookies",(ctx,next)=>{
ctx.body = ctx.cookies.get("xxxx")
})
app.use(bodyparser())
app.use(router.routes())
.use(router.allowedMethods());
app.listen(8000,()=>{
console.log("koa2 start")
})