koa和node有什麼關係

青灯夜游
發布: 2021-12-13 11:20:46
原創
2011 人瀏覽過

koa是一個基於Node.js平台的web開發框架,依賴「node v7.6.0」或ES2015及更高版本和async方法支援;Koa並沒有捆綁任何中間件,而是提供了一套優雅的方法,幫助使用者快速而愉快地編寫服務端應用程式。

koa和node有什麼關係

本教學操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。

Koa -- 基於Node.js 平台的下一代web 開發框架

Koa 是一個新的web 框架,由Express 幕後的原班人馬打造, 致力於成為web 應用和API 開發領域中的一個更小、更富有表現力、更健壯的基石。透過利用 async 函數,Koa 幫你丟棄回呼函數,並有力地增強錯誤處理。 Koa 並沒有捆綁任何中間件, 而是提供了一套優雅的方法,幫助您快速而愉快地編寫服務端應用程式。

Koa 是為了解決 Express 的一些設計缺陷而誕生的。它的中間件可以透過 async function 來編寫,await next() 可以中斷中間件的執行,等到後面所有中間件執行完之後再執行,透過 await next() 來實作洋蔥模型。

還有一個特點是對request 和response 的簡化處理,這兩者都掛載在ctx 上使用,返回的內容也可以透過直接賦值來使用,如:ctx.response.body = fs .createStream('really_large.xml')。

而且 Koa 把路由功能砍掉了,它是透過中間件來實現的,這是一種微內核的極簡思路。

核心功能(Koa 的說明文件):

  • #比Express 更極致的request / response 簡化,如:
    • ctx. status = 200
    • ctx.body = 'hello node'
  • #使用async function 實作的中間件。
  • 有「暫停執行」的能力。
  • 在非同步的情況下也符合洋蔥模型。
  • 精簡內核,所有額外功能都移到中間件裡實作。

安裝

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

你可以使用自己喜歡的版本管理器快速安裝支援的node 版本:

$ nvm install 7
$ npm i koa
$ node my-koa-app.js
登入後複製

使用Babel 實作Async 方法

要在node < 7.6 版本的Koa 中使用async 方法, 我們推薦使用babel's require hook.

require(&#39;babel-register&#39;);
// 应用的其余 require 需要被放到 hook 后面
const app = require(&#39;./app&#39;);
登入後複製

要解析和編譯async 方法, 你至少應該有transform-async-to-generator 或transform-async-to-module-method 插件.

例如, 在你的.babelrc 檔案中, 你應該有:

{
  "plugins": ["transform-async-to-generator"]
}
登入後複製

你也可以用env preset 的target 參數"node": "current" 替代.

#應用程式

Koa 應用程式是一個包含一組中間件函數的對象,它是按照類似堆疊的方式組織和執行的。 Koa 類似於你可能遇到的許多其他中間件系統,例如 Ruby 的 Rack ,Connect 等,然而,一個關鍵的設計點是在其低級中間件層中提供高級「語法糖」。這提高了互通性,穩健性,並使書寫中間件更加愉快。

這包括諸如內容協商,快取清理,代理支援和重定向等常見任務的方法。儘管提供了相當多的有用的方法 Koa 仍保持了一個很小的體積,因為沒有捆綁中間件。

必修的 hello world 應用:

const Koa = require(&#39;koa&#39;);
const app = new Koa();
app.use(async ctx => {
  ctx.body = &#39;Hello World&#39;;
});
app.listen(3000);
登入後複製

更多node相關知識,請造訪:nodejs 教學! !

以上是koa和node有什麼關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!