Node.js API 處理 (3)

基本介紹

教學目標

透過 koa 套件快速建立 API。

前置作業

  1. 完成 Node.js 0.11.14 以上版本套件安裝與設置。
    1
    2
    $ npm install n -g
    $ n 0.11.14

套件安裝

1
2
3
$ npm install koa --save
$ npm install koa-json --save
$ npm install koa-route --save

使用教學

建立劇集資料庫

1
2
3
4
5
var db = [
{ name: "繼承者們", star: "李敏鎬,樸信惠,金宇彬,姜敏赫,鄭秀晶,金智媛", view: 0 },
{ name: "來自星星的你", star: "全智賢,金秀賢,金秀賢,劉寅娜", view: 0 },
{ name: "奇皇后", star: "河智苑,池昌旭,朱鎮模,白珍熙", view: 0 }
];

建立資料 API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var _ = require("koa-route");
var json = require('koa-json');
var koa = require("koa");
var app = koa();
var dramas = {
list: function *(){
var list = [];
for (var n=0; n<db.length; n++) {
list.push({name: db[n].name});
}
this.body = list;
},
show: function *(name){
var dramas = [];
for (var n=0; n<db.length; n++) {
if (db[n].name.indexOf(name) != -1) {
db[n].view ++;
dramas.push(db[n]);
}
}
if (dramas.length == 0) {
return this.throw({status:{code:200, message:"無法找到這部劇集"}}, 404);
}
this.body = {status:{code:200, message:"總共找到 " + dramas.length + " 部符合的劇集"},data:dramas};
}
};
app.use(json());
app.use(_.get("/api/v1/dramas", dramas.list));
app.use(_.get("/api/v1/dramas/:name", dramas.show));
app.listen(8080);

啟動 Koa 的專案,必須使用和諧 (harmony) 模式。

1
$ node --harmony server.js

在瀏覽器網址列輸入 http://localhost:8080/dramas ,就能取得所有劇集資料,
在瀏覽器網址列輸入 http://localhost:8080/dramas/星星 ,就能取得相關劇集資料。

相關資源