摘要:對已經(jīng)躍躍欲試很久,恰遇最近正式發(fā)布,今天嘗試著倒騰一番。所以自己對的學(xué)習(xí)算是從開始,由于文檔資源還不完全,準(zhǔn)備踩著前輩們的肩膀,慢慢入坑。常識入門級程序與大部分程序員同胞一樣樣的習(xí)慣,寫一發(fā)慰藉自己孤寂的心靈。
對koa已經(jīng)躍躍欲試很久,恰遇koa2最近正式發(fā)布,今天嘗試著倒騰一番。所以自己對koa的學(xué)習(xí)算是從2.x開始,由于文檔資源還不完全,準(zhǔn)備踩著前輩們的肩膀,慢慢入坑。
環(huán)境的搭建node運行環(huán)境,官方文檔標(biāo)注node v4.0.0及以上版本。
babel,在使用async/await編程時babel是必須的,但是本人未使用async/await,而是使用傳統(tǒng)的promise,所以未嘗試安裝babel。
常識入門級程序與大部分程序員同胞一樣樣的習(xí)慣,寫一發(fā)hello world慰藉自己孤寂的心靈。
const Koa = require("koa"); let app = new Koa(); app.use(ctx => { ctx.body = "hello world"; }); app.listen(3000);
打開瀏覽器,訪問localhost:3000,親切的hello world映入眼簾。
理解關(guān)鍵點(應(yīng)用上下文)context
引用官方解釋:
異步編程實現(xiàn)Koa Context 將 node 的 request 和 response 對象封裝在一個多帶帶的對象里面,其為編> 寫 web 應(yīng)用和 API 提供了很多有用的方法。
許多 context 的訪問器和方法為了便于訪問和調(diào)用,簡單的委托給他們的 ctx.request 和 ctx.response 所對應(yīng)的等價方法, 比如說 ctx.type 和 ctx.length 代理了 response 對象中對應(yīng)的方法,ctx.path 和 ctx.method 代理了 request 對象中對應(yīng)的方法。
koa1提供了generator方式,koa2引入async/await實現(xiàn),而我獨愛promise處理方式。
app.use((ctx, next) => { const start = new Date(); return next().then(() => { const ms = new Date() - start; ctx.body += `1:${ctx.method} ${ctx.url} - ${ms}ms `; }); }); app.use((ctx, next) => { const start = new Date(); return next().then(() => { const ms = new Date() - start; ctx.body += `2:${ctx.method} ${ctx.url} - ${ms}ms `; }); }); app.use((ctx, next) => { ctx.body = "first exec "; });
訪問localhost:3000/index,最終結(jié)果:
first exec 2:GET /index - 0ms 1:GET /index - 0ms
勉強有點手感,洗簌,睡覺,同志們晚安。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79413.html
摘要:返回后,代表操作已完成,記錄結(jié)束時間并輸出。從零組裝因為對的學(xué)習(xí)和使用,知道了自己對于后臺框架的真實需求。所以這回決定不用之內(nèi)的工具,而是自己從零開始,組裝一個適合自己的框架。就是去和上,尋找一個一個的包并組裝在一起了而已。 起因 作為一個前端,Node.js算是必備知識之一。同時因為自己需要做一些后臺性的工作,或者完成一個小型應(yīng)用。所以學(xué)習(xí)了Node的Express框架,用于輔助和加...
摘要:需要說明的是,每次執(zhí)行完函數(shù)之后,都會返回一個對象這個返回值有兩個屬性和,對象通過這個返回值來告訴外界函數(shù)的執(zhí)行情況。函數(shù)的返回值變成這樣可以發(fā)現(xiàn)的值變?yōu)榱?,因為函?shù)已經(jīng)執(zhí)行完了。在規(guī)范中,新增了兩個協(xié)議可迭代協(xié)議和迭代器協(xié)議。 Koa是最近比較火的一款基于Node的web開發(fā)框架。說他是一個框架,其實他更像是一個函數(shù)庫,通過某種思想(或者說某種約定),將眾多的中間件聯(lián)系在一起,從而提...
摘要:玩轉(zhuǎn)同時全面掌握潮流技術(shù)采用新一代的開發(fā)框架更小更富有表現(xiàn)力更健壯。融合多種常見的需求場景網(wǎng)絡(luò)請求解析模板引擎靜態(tài)資源日志記錄錯誤請求處理。結(jié)合語句中轉(zhuǎn)中間件控制權(quán),解決回調(diào)地獄問題。注意分支中的目錄為當(dāng)節(jié)課程后的完整代碼。 ?? ?與眾不同的學(xué)習(xí)方式,為你打開新的編程視角 獨特的『同步學(xué)習(xí)』方式 文案講解+視頻演示,文字可激發(fā)深層的思考、視頻可還原實戰(zhàn)操作過程。 云集一線大廠...
摘要:現(xiàn)在,我們已經(jīng)有了云服務(wù)器了,接下來就是如何把我們能在本地跑起來的代碼部署在服務(wù)器上。云服務(wù)器設(shè)置,是運維同學(xué)經(jīng)常打交道的。討論地址歡迎一起討論,地址從零開始學(xué)習(xí)部署參考資料誰說前端不需要懂反向代理與負(fù)載均衡從入門到實踐 前段時間看到了張云龍的文章 一個程序員的成長之路 - 剖析別人,總結(jié)自己,里面有這么一段話 棧外技術(shù),是指棧內(nèi)技術(shù)的上下游,領(lǐng)域外的相關(guān)專業(yè)知識,包括但不限于服務(wù)端技...
摘要:現(xiàn)在,我們已經(jīng)有了云服務(wù)器了,接下來就是如何把我們能在本地跑起來的代碼部署在服務(wù)器上。云服務(wù)器設(shè)置,是運維同學(xué)經(jīng)常打交道的。討論地址歡迎一起討論,地址從零開始學(xué)習(xí)部署參考資料誰說前端不需要懂反向代理與負(fù)載均衡從入門到實踐 前段時間看到了張云龍的文章 一個程序員的成長之路 - 剖析別人,總結(jié)自己,里面有這么一段話 棧外技術(shù),是指棧內(nèi)技術(shù)的上下游,領(lǐng)域外的相關(guān)專業(yè)知識,包括但不限于服務(wù)端技...
閱讀 3096·2023-04-25 20:43
閱讀 1730·2021-09-30 09:54
閱讀 1600·2021-09-24 09:47
閱讀 2890·2021-09-06 15:02
閱讀 3522·2021-02-22 17:09
閱讀 1245·2019-08-30 15:53
閱讀 1448·2019-08-29 17:04
閱讀 1970·2019-08-28 18:22