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