KoaJS Request 对象

  • 定义和使用

    Koa 请求对象是 node 的普通请求对象之上的抽象,它提供了对日常 HTTP 服务器开发有用的附加功能。
    Koa 请求对象嵌入到上下文对象中。让我们在收到请求时注销请求对象。
    var koa = require('koa');
    var router = require('koa-router'); 
    var app = new koa();
    
    var _router = router();   //实例化路由器
    _router.get('/hello', async (ctx)=>{   //定义路由
       console.log(ctx.request);
       ctx.body = '您的请求已被记录。';
    });
    
    app.use(_router.routes());  //使用路由器定义的路由
    
    app.listen(3001);
    
    运行此代码并导航到 http://localhost:3001/hello,那么您将收到以下响应。
    koa
    在您的控制台上,您将使请求对象打印。
    { method: 'GET',
        url: '/hello',
        header:{ 
            host: 'localhost:3001',
            connection: 'keep-alive',
            'upgrade-insecure-requests': '1',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36 2345Explorer/10.4.0.19704',
            accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
            'accept-encoding': 'gzip, deflate, br',
            'accept-language': 'zh-CN,zh;q=0.9'
        } 
    }
    
    我们可以使用这个对象访问请求的许多有用属性。让我们看看一些例子。

    request.header

    提供所有请求头。

    request.method

    提供请求方法(GET、POST等)

    request.href

    提供完整的请求 URL。

    request.path

    提供请求的路径。没有查询字符串和 url。

    request.query

    提供已分析的查询字符串。例如,如果我们将此记录在一个请求中,例如 http://localhost:3001/hello/?name=Ayush&age=20&country=India,那么我们将得到以下对象。
    {
        name: 'Ayush',
        age: '20',
        country: 'India'
     }

    request.accepts(type)

    此函数根据请求的资源是否接受给定的请求类型返回 true 或 false。
    您可以在 docs at request 中阅读有关 Request 对象的更多信息