Node.js 學習第二十五天
要把 firebase 跟 node 的 express 做結合了。
如果在看的過程中有任何錯誤歡迎寫 E-MAIL: pp840405@gmail.com 提醒我錯誤。
Express 整合 Firebase 流程
首先去下載這支檔案node-expressFirebase-init,這支檔案為六角學院擁有,再來可以去看這支檔案的 package 檔案資料有安裝哪些套件,再來去 firebase 新增一個專案並且去設定 -> 服務帳戶 複製 SDK 設定程式碼貼上 app.js 檔案與下載產生新的私密金鑰並放在 node-expressFirebase-init 資料夾內。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
31var express = require('express');
var app = express();
var engine = require('ejs-locals');
var bodyParser = require('body-parser');
//firbase 設定
var admin = require("firebase-admin");
//路徑更改成自己的私密金鑰
var serviceAccount = require("./expresssdemo-firebase-adminsdk-9pn15-8407d41fa7");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://expresssdemo.firebaseio.com"
});
app.engine('ejs',engine);
app.set('views','./views');
app.set('view engine','ejs');
//增加靜態檔案的路徑
app.use(express.static('public'))
// 增加 body 解析
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}))
//路由
app.get('/',function(req,res){
res.render('index');
})
// 監聽 port
var port = process.env.PORT || 3000;
app.listen(port);
完成後先去安裝 package 設定的套件再安裝 firebase 的套件, firebase-admin 。1
2npm install
npm install firebase-admin --save
Firebase - once、set 寫入讀取資料
複習前面 firebase ,先再 firebase 新增 todos 子節點然後再新增 content:”hello” 的資料。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
36var express = require('express');
var app = express();
var engine = require('ejs-locals');
var bodyParser = require('body-parser');
//firbase 設定
var admin = require("firebase-admin");
var serviceAccount = require("./expresssdemo-firebase-adminsdk-9pn15-8407d41fa7");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://expresssdemo.firebaseio.com"
});
var firdata = admin.database();
firdata.ref('todos').onec('value',function(snapshot){
console.log(snapshot.val());
})
app.engine('ejs',engine);
app.set('views','./views');
app.set('view engine','ejs');
//增加靜態檔案的路徑
app.use(express.static('public'))
// 增加 body 解析
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}))
//路由
app.get('/',function(req,res){
res.render('index');
})
// 監聽 port
var port = process.env.PORT || 3000;
app.listen(port);
Firebase - then 設計思維
把資料寫入後主動回傳資料確定有寫入來做任何事情。1
2
3
4
5
6
7//由於一些設定過於太長,所以這邊不顯示設定,
var firdata = admin.database();
firdata.ref('todos').set({'title':'hello,tom'}).then(function(){
firdata.ref('todos').once('value',function(snapshot){
console.log(snapshot.val());
})
})
結語
開始做結合了,前面學習有結果了不用再枯燥的練習了,有任何問題歡迎寫 MAIL: pp840405@gmail.com 一起共同討論。