Koa 是由 Express 原班人馬親情打造的新一代web框架。既然已經有 Express 了,爲何又要搞一個Koa出來呢?由於 Koa 相比 Express 體積更小,代碼更健壯,做用更純粹。html
Koa2 使用最新的 ES6 語法和 aync 函數進行開發,所以 Koa2 要求 nodejs 的版本不低於 7.6.0。node
使用 Koa 建立一個服務器很是簡單,新建文件 app.js,放置如下代碼:git
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000); console.log('listening 3000 ...');
且先無論具體的語法含義,先運行該文件node app.js
,即建立並啓動了一臺服務器,在瀏覽器中輸入網址 http://localhost:3000 便可以看到es6
Hello Worldgithub
之因此說Koa做用更純粹,是由於Koa自己只提供了有限的最基本的功能,一切須要的額外功能都是經過中間件實現,好比路由管理,log日誌,錯誤處理等等。所謂中間件,就像中間人同樣,全部與客戶端之間的通訊都要通過它們,它們會對會話的輸入和輸出作具體的處理。web
服務器說白了不就是接受客戶端請求(一般是一個url)並返回相應資源的一個東西嘛,所以路由管理器(koa-router)應該是(koa)最爲重要的一箇中間件了。接下來給 app 添加路由:json
const Koa = require('koa'); const app = new Koa(); const Router = require('koa-router'); const router = new Router(); router.get(/.*/, async (ctx, next)=>{ // 匹配 get 請求 ctx.body = `Your request url is: ${ctx.path}`; }); app.use(router.routes()); app.listen(3000); console.log('listening 3000 ...');
運行 app 以後在瀏覽器中隨便輸入一個地址 http://localhost:3000/your/url 就能看到瀏覽器
Your request url is: /your/url服務器
這只是一個簡單例子,實際上你能夠返回一張圖片,json數據,html頁面等等。app