JavaScript 进阶营

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")
})
上一篇下一篇

猜你喜欢

热点阅读