码迷,mamicode.com
首页 > 其他好文 > 详细

koa2-4

时间:2018-05-29 22:52:00      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:demo   console   NPU   async   先来   获得   显示   地址   OLE   

POST请求如何接收(1)

 获取Post请求的步骤:

  1. 解析上下文ctx中的原生nodex.js对象req。
  2. 将POST表单数据解析成query string-字符串.(例如:user=jspang&age=18)
  3. 将字符串转换成JSON格式。

 ctx.request和ctx.req的区别

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

 ctx.method 得到请求类型

  Koa2中提供了ctx.method属性,可以轻松的得到请求的类型,然后根据请求类型编写不同的相应方法,这在工作中非常常用。我们先来作个小例子,根据请求类型获得不同的页面内容。GET请求时得到表单填写页面,POST请求时,得到POST处理页面。

const Koa = require(‘koa‘);
const app = new Koa();
app.use(async(ctx)=>{
    //当请求时GET请求时,显示表单让用户填写
    if(ctx.url===‘/‘ && ctx.method === ‘GET‘){
        let html =`
            <h1>Koa2 request post demo</h1>
            <form method="POST"  action="/">
                <p>userName</p>
                <input name="userName" /> <br/>
                <p>age</p>
                <input name="age" /> <br/>
                <p>webSite</p>
                <input name=‘webSite‘ /><br/>
                <button type="submit">submit</button>
            </form>
        `;
        ctx.body =html;
    //当请求时POST请求时
    }else if(ctx.url===‘/‘ && ctx.method === ‘POST‘){
        ctx.body=‘接收到请求‘;
    }else{
        //其它请求显示404页面
        ctx.body=‘<h1>404!</h1>‘;
    }
})
 
app.listen(3000,()=>{
    console.log(‘[demo] server is starting at port 3000‘);
})

  写好这段代码后你可以用node命令执行它,然后再浏览器中输入http://127.0.0.1:3000进行查看,第一次进入时给我们展现的是一个表单页面,我们点击提交后可以看到服务器接收到了我们的信息,但我们并没有做出任何处理。当我们下输入一个地址时,它会提示404错误。

koa2-4

标签:demo   console   NPU   async   先来   获得   显示   地址   OLE   

原文地址:https://www.cnblogs.com/xiaofandegeng/p/9108019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!