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


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

    koa相比express的优点在哪里
    1、更加优雅简单的中间机制
    2、更加优雅简单的异步处理
    3、更加优雅简单的编程方式

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

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

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

    const Koa = require('koa')
    const app = new Koa()
    
    app.use(async(ctx)=>{
        let ctxx = ctx
        let url = ctx.url
        
        //1、从require 里面获取 query 和 querystring
        let request = ctx.request
        let a_query = request.query
        let a_querystring = request.querystring
    
        //2、从上下文直接获取 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")
    })

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

    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")
    })


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

  • 相关阅读:
    在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:
    sqlserver日志的备份与还原
    C#中String 与Color之间的相互转换
    sql 替换字符串
    Components_Box
    射线检测与碰撞通道设置
    切碎方块
    音乐可视化
    枚举
    UI与Actor(蓝图)的互动
  • 原文地址:https://www.cnblogs.com/chengxiang123/p/9515286.html
Copyright © 2020-2023  润新知