美文网首页
三.Koa2基础教程03GET数据的接收

三.Koa2基础教程03GET数据的接收

作者: qqqc | 来源:发表于2018-02-13 11:34 被阅读0次

    在前后端配合时,后端都会告知你的请求时GET/POST请求,我们对两种请求在前端也是非常熟悉的,比如作电商系统时,我们要得到一个商品的详细信息,需要传递GET形式的商品编号到后台,后台返回给我们数据。既然我们对请求都不陌生,那这节课来看一下这些请求Koa2是如何接受并处理的。

    query和querystring区别
    在koa2中GET请求通过request接收,但是接受的方法有两种:query和querystring。

    • query:返回的是格式化好的参数对象。
    • querystring:返回的是请求字符串

    先来写个简单的例子,看一下输出的结果。

    demo1.js

    const Koa = require('koa');
    const app = new Koa();
    app.use(async(ctx)=>{
        let url =ctx.url;
        let request =ctx.request;
        let req_query = request.query;
        let req_querystring = request.querystring;
     
        ctx.body={
            url,
            req_query,
            req_querystring
        }
     
    });
     
    app.listen(3000,()=>{
        console.log('[demo] server is starting at port 3000');
    });
    

    编写好后,在终端中使用node demo1.js启动服务。启动一切正常可在浏览器中使用http://localhost:3000?user=jspang&age=18来进行访问。我们在网页中可以得到一串JSON字符串,这是不是很想后端传给我们的接口。

    {"url":"/?user=jspang&age=18","req_query":{"user":"jspang","age":"18"},"req_querystring":"user=jspang&age=18"}
    

    直接从ctx中获取Get请求
    除了在ctx.request中获取Get请求外,还可以直接在ctx中得到GET请求。ctx中也分为query和querystring。有了上边的联系,我们对它们的区别已经很熟悉,不再累述。接着上边的代码,我们看一下在ctx下直接获取GET请求的方式。

    const Koa = require('koa');
    const app = new Koa();
    app.use(async(ctx)=>{
        let url =ctx.url;
     
        //从request中获取GET请求
        let request =ctx.request;
        let req_query = request.query;
        let req_querystring = request.querystring;
     
        //从上下文中直接获取
        let ctx_query = ctx.query;
        let ctx_querystring = ctx.querystring;
     
        ctx.body={
            url,
            req_query,
            req_querystring,
            ctx_query,
            ctx_querystring
        }
     
    });
     
    app.listen(3000,()=>{
        console.log('[demo] server is starting at port 3000');
    });
    

    总结:获得GET请求的方式有两种,一种是从request中获得,一种是一直从上下文中获得。获得的格式也有两种:query和querystring。大家要区分记忆,并根据实际需求进行灵活变换。

    相关文章

      网友评论

          本文标题:三.Koa2基础教程03GET数据的接收

          本文链接:https://www.haomeiwen.com/subject/bqjjtftx.html