一、koa的安装,get和post方法的基础使用

koa是干什么:koa是用来解决回调嵌套的方案,减小异步回调,提升代码的可读性和可维护性同时也改进了错误处理( Express的错误处理至关糟糕)node

koa相比express的优势在哪里
一、更加优雅简单的中间机制
二、更加优雅简单的异步处理
三、更加优雅简单的编程方式express

1、安装和使用koa
一、检查node版本,低于7.6是不支持的。
查找node安装位置命令行 : where node
二、选择须要安装或操做的文件夹, npm init -y 生成.json文件
npm i --save koanpm

 

2、get请求的接收
在koa2中 get请求经过 request 接收 ,接收方法分别是:query 和 qureystring
query : 返回的是格式化好的参数对象,
querystring :返回的是请求的字符串编程

案例:
新建一个 index.js 的文件json

const Koa = require('koa')
const app = new Koa()

app.use(async(ctx)=>{
    let ctxx = ctx
    let url = ctx.url
    
    //一、从require 里面获取 query 和 querystring
    let request = ctx.request
    let a_query = request.query
    let a_querystring = request.querystring

    //二、从上下文直接获取 query 和 querystring
    let b_query = ctx.query
    let b_querystring = ctx.querystring

    ctx.body={
        url,
        a_query,
        a_querystring,
        b_query,
        b_querystring
    }
})

app.listen(3000,()=>{
    console.log("OK")
})

 

3、post接收和解析
用户是GET请求时,经过表单来模拟POTS请求提交并解析app

const Koa = require('koa');
const app = new Koa();
app.use(async(ctx)=>{
    //用户是get请求时,显示表单
    if(ctx.url==="/" && ctx.method==="GET"){
        //get请求建立表单
        ctx.body = `
            <h1>koa2</h1>
            <form method="POST" action="/">
                <p>userName</p>
                <input type="text" name="userName"/>
                <p>age</p>
                <input tpye="text" name="age"/>
                <button type="submit">提交</button>
            </form>
        `
    }else if(ctx.url==="/" && ctx.method==="POST"){
        //post请求打印
        let postdatas = await parsePostData(ctx)
        ctx.body = postdatas
    }else{
        //其余请求显示404
        ctx.body=`
            <h1>404</h1>
        `
    }
});

//解析node原生POST参数
function parsePostData(ctx){
    return new Promise((resolve,reject)=>{
        //Promise 调用成功
        try{
            let postdata = ""
            //koa 监听
            ctx.req.on("data",(data)=>{
                postdata += data
            })
            //执行结束之后返回
            ctx.req.addListener("end",function(){
                let postList = parsingStr(postdata)
                resolve(postList)
            })
        }catch(err){
            reject(err)
        }
    })
}

//打字符串解析成json
function parsingStr(str){
    let parsingData = {}
    let parsingList = str.split("&")
    for(let value of parsingList){
        let item = value.split('=')
        parsingData[item[0]] = item[1]
    }
    return parsingData
}

app.listen(3000,()=>{
    console.log("OK")
})

 


4、安装中间件来解析post
经过安装 koa-bodyparser@3 中间件 来解析 POST 数据 (就不用在手动去POST数据解析出来了)
一、安装 npm i --save koa-bodyparser@3
二、引入插件 : const bodyParser = require('koa-bodyparser')
三、注册插件 : app.use(bodyParser ())
四、使用:ctx.body = ctx.request.body //ctx.request 直接就把 POST的数据解析成一个json了koa

相关文章
相关标签/搜索