Node.js 同步處理 (1)

基本介紹

教學目標

透過 co-express 套件同步存取 App Store 的 RSS Feed Generator 的 API 匯整任何 App 的排名資訊。

前置作業

  1. 完成 Node.js 套件安裝與設置。

套件安裝

1
2
3
$ npm install co --save
$ npm install co-request --save
$ npm install co-express --save

使用教學

首先透過 RSS Feed Generator 取得適合的資料 API,接著撰寫資料轉換程式,最後產生 API。

appstore_rank_report.js

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
31
32
33
34
var co = require('co');
var request = require('co-request');
var wrap = require('co-express');

var express = require('express');

app = express();

var app_product = [];
app_product['Messenger'] = {};
app_product['Messenger'].name = 'Messenger';

app.get('/api/v1/appstore/rank', wrap(function* (req, res) {
co(function* () {
var keys = Object.keys(app_product);
var result = yield request('https://itunes.apple.com/tw/rss/topfreeapplications/limit=200/json');
var data = JSON.parse(result.body).feed.entry;
for (var n=0; n<data.length; n++) {
for (var i=0; i<keys.length; i++) {
console.log(data[n]['im:name']['label']);
if (data[n]['im:name']['label'] == keys[i]) {
app_product[keys[i]].rank = n + 1;
}
}
}
var datas = []
for (var n=0; n<keys.length; k++) {
datas[n] = app_product[keys[n]];
}
res.json(datas);
});
}));

app.listen(8080);

執行程式

1
$  node --harmony appstore_rank_report.js

在瀏覽器網址列輸入 http://localhost:8080/api/v1/appstore/rank ,就能取得相關 App 的排名資訊。

相關資源