中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

koa和node有哪些關系

發布時間:2021-12-13 11:34:57 來源:億速云 閱讀:128 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關koa和node有哪些關系,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

koa是一個基于Node.js平臺的web開發框架,依賴“node v7.6.0”或ES2015及更高版本和async方法支持;Koa并沒有捆綁任何中間件,而是提供了一套優雅的方法,幫助用戶快速而愉快地編寫服務端應用程序。

本教程操作環境: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('babel-register');
// 應用的其余 require 需要被放到 hook 后面
const app = require('./app');

要解析和編譯 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('koa');
const app = new Koa();
app.use(async ctx => {
  ctx.body = 'Hello World';
});
app.listen(3000);

關于“koa和node有哪些關系”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舒兰市| 日照市| 大庆市| 灵山县| 大新县| 郎溪县| 三河市| 阿勒泰市| 洪雅县| 武城县| 汤原县| 太保市| 石城县| 贵德县| 绥化市| 宜州市| 福贡县| 三江| 班玛县| 杭锦旗| 东安县| 普定县| 尼勒克县| 曲阳县| 准格尔旗| 庆安县| 青龙| 罗平县| 荆门市| 孟津县| 二连浩特市| 巴中市| 宁乡县| 嘉荫县| 清水县| 新蔡县| 溧阳市| 且末县| 年辖:市辖区| 迁西县| 五莲县|