亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Koa v2.x 中文文檔

Cobub / 3169人閱讀

摘要:的對象提供了用于處理響應(yīng)的方法,該響應(yīng)委托給。應(yīng)用對象是與的服務(wù)器和處理中間件注冊的接口,從發(fā)送到中間件,默認(rèn)錯誤處理,以及上下文,請求和響應(yīng)對象的配置。

此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star.






此項目同步自 koajs / koa 項目中的 docs. 除特殊情況, 將保持每月一次的同步頻率.

用 node.js 來實(shí)現(xiàn) HTTP 的中間件框架,讓 Web 應(yīng)用程序和 API 可以更加愉快地編寫。Koa 的中間件堆棧以類似堆棧的方式流動,允許您執(zhí)行下游操作,然后過濾并操縱上游的響應(yīng)。

幾乎所有 HTTP 服務(wù)器通用的方法都被直接集成到 Koa 大約570行源碼的代碼庫中。其中包括比如內(nèi)容協(xié)商,規(guī)范節(jié)點(diǎn)不一致性,重定向等其它操作。

Koa沒有捆綁任何中間件。

安裝

Koa 依賴 node v7.6.0 或 ES2015及更高版本和 async 方法支持.

$ npm install koa
Hello koa
const Koa = require("koa");
const app = new Koa();

// 響應(yīng)
app.use(ctx => {
  ctx.body = "Hello Koa";
});

app.listen(3000);
入門

Kick-Off-Koa - 通過一系列自身指引的講解介紹了 Koa。

Workshop - 通過學(xué)習(xí) Koa 的講解,快速領(lǐng)會精髓。

Introduction Screencast - 關(guān)于 Koa 安裝入門的介紹。

中間件

Koa 是一個中間件框架,可以將兩種不同的功能作為中間件:

async function

common function

以下是每個不同功能記錄器的中間件示例:

async functions (node v7.6+)
app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});
Common function
// 中間件通常帶有兩個參數(shù) (ctx, next), ctx 是一個請求的上下文,
// next 是調(diào)用執(zhí)行下游中間件的函數(shù). 在代碼執(zhí)行完成后通過 then 方法返回一個 Promise.

app.use((ctx, next) => {
  const start = Date.now();
  return next().then(() => {
    const ms = Date.now() - start;
    console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
  });
});
Koa v1.x 中間件簽名

中間件簽名在 v1.x 和 v2.x 之間已經(jīng)被更改. 舊的簽名已經(jīng)被棄用.

舊的簽名中間件支持將在 v3 中刪除

請參閱 遷移指南 獲取有關(guān)從 v1.x 升級并使用 v2.x 中間件的更多信息。

上下文, 請求和響應(yīng)

每個中間件都接收一個 Koa 的 Context 對象,該對象封裝了一個傳入的 http 消息,并對該消息進(jìn)行了相應(yīng)的響應(yīng)。 ctx 通常用作上下文對象的參數(shù)名稱。

app.use(async (ctx, next) => { await next(); });

Koa 提供了一個 Request 對象作為 Contextrequest 屬性。
Koa的 Request 對象提供了用于處理 http 請求的方法,該請求委托給 node http 模塊的IncomingMessage。

這是一個檢查請求客戶端 xml 支持的示例。

app.use(async (ctx, next) => {
  ctx.assert(ctx.request.accepts("xml"), 406);
  // 相當(dāng)于:
  // if (!ctx.request.accepts("xml")) ctx.throw(406);
  await next();
});

Koa提供了一個 Response 對象作為 Contextresponse 屬性。
Koa的 Response 對象提供了用于處理 http 響應(yīng)的方法,該響應(yīng)委托給 ServerResponse。

Koa 對 Node 的請求和響應(yīng)對象進(jìn)行委托而不是擴(kuò)展它們。這種模式提供了更清晰的接口,并減少了不同中間件與 Node 本身之間的沖突,并為流處理提供了更好的支持。
IncomingMessage 仍然可以直接被訪問,因為 ContextServerResponse 上的 req 屬性可以直接作為 Context 上的 res 屬性訪問。

這里是一個使用 Koa 的 Response 對象將文件作為響應(yīng)體流式傳輸?shù)氖纠?/p>

app.use(async (ctx, next) => {
  await next();
  ctx.response.type = "xml";
  ctx.response.body = fs.createReadStream("really_large.xml");
});

Context 對象還提供了其 requestresponse 方法的快捷方式。在前面的例子中,可以使用 ctx.type 而不是 ctx.request.type,而 ctx.accepts 可以用來代替 ctx.request.accepts。

關(guān)于 Request, ResponseContext 更多詳細(xì)信息, 參閱 請求 API 參考,
響應(yīng) API 參考 和 上下文 API 參考.

Koa 應(yīng)用程序

在執(zhí)行 new Koa() 時創(chuàng)建的對象被稱為 Koa 應(yīng)用程序?qū)ο蟆?/p>

應(yīng)用對象是 Koa 與 node 的 http 服務(wù)器和處理中間件注冊的接口,從 http 發(fā)送到中間件,默認(rèn)錯誤處理,以及上下文,請求和響應(yīng)對象的配置。

了解有關(guān)應(yīng)用程序?qū)ο蟮母嘈畔⒄埖?應(yīng)用 API 參考.

文檔

使用指南

錯誤處理

Koa 與 Express

常見問題

從 Koa v1.x 遷移到 v2.x

API 文檔

上下文(Context)

請求(Request)

響應(yīng)(Response)

Koa 中間件列表

Babel 配置

如果你正在使用的不是 node v7.6+, 我們推薦你用 babel-preset-env 配置 babel :

$ npm install babel-register babel-preset-env --save

在你入口文件配置 babel-register:

require("babel-register");

還有你的 .babelrc 配置:

{
  "presets": [
    ["env", {
      "targets": {
        "node": true
      }
    }]
  ]
}
運(yùn)行測試
$ npm test

如果這篇文章對您有幫助, 感謝 下方點(diǎn)贊 或 Star GitHub: koa-docs-Zh-CN 支持, 謝謝.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/89494.html

相關(guān)文章

  • Koa v2.x 中文文檔Koa v1.x 遷移到 v2.x

    摘要:一個遷移方式是逐個更新它們。刪除特定的日志記錄行為對于環(huán)境的顯式檢查從錯誤處理中刪除。直接或它不再使用并已廢棄。支持仍然支持分支,但應(yīng)該不會得到功能性更新。除了此遷移指南外,文檔將針對最新版本。 從 Koa v1.x 遷移到 v2.x 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. 新的中...

    fancyLuo 評論0 收藏0
  • Koa v2.x 中文文檔 Koa 對比 Express

    摘要:使用承諾和異步功能來擺脫回調(diào)地獄的應(yīng)用程序,并簡化錯誤處理。它暴露了自己的和對象,而不是的和對象。因此,可被視為的模塊的抽象,其中是的應(yīng)用程序框架。這使得中間件對于整個堆棧而言不僅僅是最終應(yīng)用程序代碼,而且更易于書寫,并更不容易出錯。 Koa 與 Express 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新...

    summerpxy 評論0 收藏0
  • Koa v2.x 中文文檔 常見問題

    摘要:常見問題此系列文章的應(yīng)用示例已發(fā)布于可以幫助改進(jìn)或關(guān)注更新歡迎替代它更像是,但是很多的好東西被轉(zhuǎn)移到的中間件級別,以幫助形成更強(qiáng)大的基礎(chǔ)。這使得中間件對于整個堆棧而言不僅僅是最終應(yīng)用程序代碼,而且更易于書寫,并更不容易出錯。 常見問題 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. Koa...

    Paul_King 評論0 收藏0
  • Koa v2.x 中文文檔 使用指南

    摘要:當(dāng)中間件運(yùn)行時,它必須手動調(diào)用來運(yùn)行下游中間件。例如,這個中間件從讀取文件名,然后在將給指定合并結(jié)果之前并行讀取每個文件的內(nèi)容。當(dāng)你無法控制中間件的名稱時,這很有用。 指南 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. 本指南涵蓋的 Koa 主題不與 API 直接相關(guān),例如編寫中間件的最...

    anquan 評論0 收藏0
  • Koa v2.x 中文文檔 錯誤處理

    摘要:但是,默認(rèn)錯誤處理程序?qū)τ诖蠖鄶?shù)用例來說都是足夠好的。錯誤偵聽器接收所有中間件鏈返回的錯誤,如果一個錯誤被捕獲并且不再拋出,它將不會被傳遞給錯誤偵聽器。 錯誤處理 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. Try-Catch 使用 async 方法意味著你可以 try-catch n...

    zgbgx 評論0 收藏0

發(fā)表評論

0條評論

Cobub

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<