iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 20
1
Modern Web

從零開始認識 Node.js系列 第 20

[Day 20] 動手篇 - Koa is working

  • 分享至 

  • xImage
  •  

Koa

前言

Koa 的內容會以 v2 為主!這是上篇沒有提到的部分,因此若 Koa v1 使用上發現問題,我可能沒辦法幫忙解決,但討論、一起決解問題是沒問題的。

Yeah! Koa is working

Koa 和 Express 一樣可以直接建立一個 HTTP Server

Express 的用法

const express = require('express');
const app = express();

app.get('/', function (req, res) {
  res.send('Hello World!')
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
});

Koa 的用法

const koa = require('koa');
const app = koa();

app.use(function *(){
  this.body = 'Hello World!';
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
});

Koa 本身沒有帶 Router ,此時的 Server 不論切換到哪一個頁面都會呈現 Hello Wolrd! ,原因是少了 Express 裡 app.get() 這段的 Router 設定;幫 Koa 加個 Router ,以下使用 koa-router 且在 app.use() 加載。

const router = require('koa-router');
router.get('/', function *() {
  this.body = 'Hello World!';
})
app.use(router());

加上這段後,不論切到哪一頁還是一樣都會顯示 Hello World! ,因為 app.use() 集中了 Koa 整體的設定,在一開始的 Example Code 中設定不論到哪頁 response 為 Hello World! ,所以要刪除以下這段內容,

app.use(function *(){
  this.body = 'Hello World!';
});

之後只有首頁 localhost:3000 會顯示 Hello World! ,其他 localhost:3000/... 頁面 response 都回傳 404 、 Not found 訊息。

後記

以上是 Koa 基本 Hello World 加一點變化,下一篇預計寫 TDD 、 Mocha ,有興趣的朋友請自便。


上一篇
[Day 19] 動手篇 - Koa is coming
下一篇
[Day 21] 動手篇 - Please give me Mocha (1)
系列文
從零開始認識 Node.js31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言