這篇文章將為大家詳細(xì)講解有關(guān)koa和node有哪些關(guān)系,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
目前創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、靖西網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
koa是一個(gè)基于Node.js平臺(tái)的web開發(fā)框架,依賴“node v7.6.0”或ES2015及更高版本和async方法支持;Koa并沒(méi)有捆綁任何中間件,而是提供了一套優(yōu)雅的方法,幫助用戶快速而愉快地編寫服務(wù)端應(yīng)用程序。
本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版,DELL G3電腦。
Koa -- 基于 Node.js 平臺(tái)的下一代 web 開發(fā)框架
Koa 是一個(gè)新的 web 框架,由 Express 幕后的原班人馬打造, 致力于成為 web 應(yīng)用和 API 開發(fā)領(lǐng)域中的一個(gè)更小、更富有表現(xiàn)力、更健壯的基石。 通過(guò)利用 async 函數(shù),Koa 幫你丟棄回調(diào)函數(shù),并有力地增強(qiáng)錯(cuò)誤處理。 Koa 并沒(méi)有捆綁任何中間件, 而是提供了一套優(yōu)雅的方法,幫助您快速而愉快地編寫服務(wù)端應(yīng)用程序。
Koa 是為了解決 Express 的一些設(shè)計(jì)缺陷而誕生的。它的中間件可以通過(guò) async function 來(lái)編寫,await next() 可以中斷中間件的執(zhí)行,等到后面所有中間件執(zhí)行完之后再執(zhí)行,通過(guò) await next() 來(lái)實(shí)現(xiàn)洋蔥模型。
還有一個(gè)特點(diǎn)是對(duì) request 和 response 的簡(jiǎn)化處理,這兩者都掛載在 ctx 上使用,返回的內(nèi)容也可以通過(guò)直接賦值來(lái)使用,如:ctx.response.body = fs.createStream('really_large.xml')。
而且 Koa 把路由功能砍掉了,它是通過(guò)中間件來(lái)實(shí)現(xiàn)的,這是一種微內(nèi)核的極簡(jiǎn)思路。
核心功能(Koa 的說(shuō)明文檔):
比 Express 更極致的 request / response 簡(jiǎn)化,如:
ctx.status = 200
ctx.body = 'hello node'
使用 async function 實(shí)現(xiàn)的中間件。
有“暫停執(zhí)行”的能力。
在異步的情況下也符合洋蔥模型。
精簡(jiǎn)內(nèi)核,所有額外功能都移到中間件里實(shí)現(xiàn)。
安裝
Koa 依賴 node v7.6.0 或 ES2015及更高版本和 async 方法支持.
你可以使用自己喜歡的版本管理器快速安裝支持的 node 版本:
$ nvm install 7 $ npm i koa $ node my-koa-app.js
使用 Babel 實(shí)現(xiàn) Async 方法
要在 node < 7.6 版本的 Koa 中使用 async 方法, 我們推薦使用 babel's require hook.
require('babel-register'); // 應(yīng)用的其余 require 需要被放到 hook 后面 const app = require('./app');
要解析和編譯 async 方法, 你至少應(yīng)該有 transform-async-to-generator 或 transform-async-to-module-method 插件.
例如, 在你的 .babelrc 文件中, 你應(yīng)該有:
{ "plugins": ["transform-async-to-generator"] }
你也可以用 env preset 的 target 參數(shù) "node": "current" 替代.
應(yīng)用程序
Koa 應(yīng)用程序是一個(gè)包含一組中間件函數(shù)的對(duì)象,它是按照類似堆棧的方式組織和執(zhí)行的。 Koa 類似于你可能遇到過(guò)的許多其他中間件系統(tǒng),例如 Ruby 的 Rack ,Connect 等,然而,一個(gè)關(guān)鍵的設(shè)計(jì)點(diǎn)是在其低級(jí)中間件層中提供高級(jí)“語(yǔ)法糖”。 這提高了互操作性,穩(wěn)健性,并使書寫中間件更加愉快。
這包括諸如內(nèi)容協(xié)商,緩存清理,代理支持和重定向等常見任務(wù)的方法。 盡管提供了相當(dāng)多的有用的方法 Koa 仍保持了一個(gè)很小的體積,因?yàn)闆](méi)有捆綁中間件。
必修的 hello world 應(yīng)用:
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);
關(guān)于“koa和node有哪些關(guān)系”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
當(dāng)前文章:koa和node有哪些關(guān)系
URL地址:http://aaarwkj.com/article12/pegddc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站排名、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)