zoukankan      html  css  js  c++  java
  • Koa2的post请求获取参数

    对于post请求处理,koa2没有封装轻便的方法获取参数,需要通过解析上下文context中的原生node.js请求对象req来获取。

    获取koa2post请求步骤:

    1. 解析上下文ctx中的原生nodex.js对象req。
    2. 将post表单数据解析成query String -字符串
    3. 将字符串转换成json格式

    ctx.requset跟ctx.req的具体区别,对于我们做深度编程时,有很大的帮助:

    1. ctx.request:是Koa2中context经过封装的请求对象,它用起来更直观和简单。
    2. ctx.req:是context提供的node.js原生HTTP请求对象。这个虽然不那么直观,但是可以得到更多的内容,适合我们深度编程。

    ctx.method可以得到请求的类型,方便我们判断是什么请求类型,进行不同的操作。

    const Koa = require('koa');
    const app = new Koa();
    app.use(async(ctx)=>{
        //当请求时GET请求时,显示表单让用户填写
        // 我们利用上文中说到的ctx.method判断请求的类型
        if(ctx.url==='/' && ctx.method === 'GET'){
            let html =`
                <form method="POST"  action="/">
                    <p>userName</p>
                    <input name="name" /> <br/>
                    <p>age</p>
                    <input name="sex" /> <br/>
                    <p>webSite</p>
                    <input name='way' /><br/>
                    <button type="submit">submit</button>
                </form>
            `;
            // 如果是get请求我们把这个表单进行显示,当点击提交按钮时,我们以post的方式进行提交
            ctx.body =html;
            //当请求时POST请求时
        }else if(ctx.url==='/' && ctx.method === 'POST'){
            // 当请求为post请求的时候,我们在页面中显示下面的这句话,证明我们post请求参数是成功的
            ctx.body='接收到请求';
        }
    })
     
    app.listen(3001,()=>{
        console.log('success on port 3001');
    })

    当我们用node index.js启动后会在命令行看到‘success on port 3001’,说明我们的代码没有错,已经正常启动,我们打开浏览器,输入localhost:3001,页面会出现如下图所示的表单:

    我们随便输入一些值,点击submit提交按钮后,出现如下图所示:

    原文:https://blog.csdn.net/Lschange/article/details/80590775

  • 相关阅读:
    CSS基础(十七)--Padding和margin(内边距和外边距)
    tomcat动态网站
    http和nginx错误定义
    nginx动态网站
    nginx动静分离
    nginx负载均衡
    nginx介绍
    cobbler服务器
    apache网络配置
    网络源
  • 原文地址:https://www.cnblogs.com/dlsj-cn/p/12909444.html
Copyright © 2011-2022 走看看