Leo Yeh's Blog

Node.js 雲端服務 - Parse (1)

基本介紹

教學目標

透過 Node.js 實作 RESTful API 主要能夠彈性存取 Parse 雲端服務的資料庫。

前置作業

  1. 申請 Parse 雲端服務帳號。
  2. 在 Core Data 服務中建立資料類別。

套件安裝

1
$ npm install parse --save

使用教學

實作重點

  1. 溝通介面: API 針對 Parse 雲端服務中的 Document 資料類別進行 CRUD 操作。
  2. 需求彈性: API 參數可以針對資料庫 Schema 直接進行彈性調整。
  3. 資料管理: Parse 雲端服務已經提供資料管理的平台,可以輕易透過網站進行資料的管理。
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var express = require('express'); 
var body_parser = require('body-parser');
var app = express();

app.use(body_parser.json());
app.use(body_parser.urlencoded({ extended: true }));

var router = express.Router();

var Parse = require('parse').Parse;

Parse.initialize("Application ID", "JavaScript Key");

app.use('/api/v1', router);

router.get('/document', function(req, res){
var query = new Parse.Query("Document");
query.find({
success: function(document) {
var datas = [];
for (var i = 0; i < document.length; ++i) {
datas.push(document[i]);
}
res.json(datas);
}
});
});

router.post('/document', function(req, res){
var Document = Parse.Object.extend("Document");
var document = new Document();
var keys = Object.keys(req.body);
for (var n=0; n<keys.length; n++) {
document.set(keys[n],req.body[keys[n]]);
}
document.save(null, {
success: function(document) {
res.json(document)
},
error: function(document, error) {
console.log(error)
}
});
});

router.delete('/document', function(req, res){
var query = new Parse.Query("Document");
query.equalTo("objectId",req.body.objectId);
query.first({
success: function(document) {
document.destroy();
res.json(document);
},
error: function(document, error) {
console.log(error)
}
});
});

router.put('/document', function(req, res){
var query = new Parse.Query("Document");
query.equalTo("objectId",req.body.objectId);
query.first({
success: function(document) {
var keys = Object.keys(req.body);
for (var k=0; k<keys.length; k++) {
if (keys[k]!="objectId") {
document.set(keys[k],req.body[keys[k]]);
}
}
document.save();
res.json(document);
},
error: function(document, error) {
console.log(error)
}
});
});

var port = process.env.PORT || 8080;
app.listen(port);

相關資源

⬅️ Go back