Koa.js - 請求物件



Koa Request 物件是 node 原生 request 物件的抽象層,它提供了日常 HTTP 伺服器開發中很有用的附加功能。Koa request 物件嵌入在上下文物件 this 中。讓我們在每次收到請求時都記錄請求物件。

var koa = require('koa');
var router = require('koa-router');
var app = koa();

var _ = router();

_.get('/hello', getMessage);

function *getMessage(){
   console.log(this.request);
   this.body = 'Your request has been logged.';
}
app.use(_.routes());
app.listen(3000);

執行此程式碼並導航到 https://:3000/hello 後,您將收到以下響應。

Request Object

您的控制檯中將輸出請求物件。

{ 
   method: 'GET',
   url: '/hello/',
   header: 
   { 
      host: 'localhost:3000',
      connection: 'keep-alive',
      'upgrade-insecure-requests': '1',
      'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) 
         AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
      accept: 'text/html,application/xhtml+xml,
         application/xml;q = 0.9,image/webp,*/*;q = 0.8',
      dnt: '1',
      'accept-encoding': 'gzip, deflate, sdch',
      'accept-language': 'en-US,en;q = 0.8' 
   }
}

我們可以使用此物件訪問請求的許多有用屬性。讓我們來看一些例子。

request.header

提供所有請求頭。

request.method

提供請求方法(GET、POST 等)。

request.href

提供完整的請求 URL。

request.path

提供請求路徑。不包含查詢字串和基本 URL。

request.query

給出解析後的查詢字串。例如,如果我們在類似 https://:3000/hello/?name=Ayush&age=20&country=India 的請求上記錄此內容,我們將得到以下物件。

{
   name: 'Ayush',
   age: '20',
   country: 'India'
}

request.accepts(type)

此函式根據請求的資源是否接受給定的請求型別返回 true 或 false。

您可以在文件中閱讀有關請求物件的更多資訊:Request

廣告