定义和使用
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,那么您将收到以下响应。
在您的控制台上,您将使请求对象打印。
{ 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 对象的更多信息