End.js實(shí)時(shí)數(shù)據(jù)庫(kù)框架
第一次看到Firebase就被它所吸引,此后嘗試使用它開(kāi)發(fā)了一個(gè)chrome聊天插件,開(kāi)發(fā)過(guò)程中,F(xiàn)irebase極大的提高了開(kāi)發(fā)效率。由于對(duì)Firebase的強(qiáng)烈興趣,所以畢設(shè)選擇做一個(gè)類似的東西,便是End.js
Firebase幾個(gè)優(yōu)點(diǎn):
- 云服務(wù),隨時(shí)擴(kuò)展,高性能,無(wú)需部署管理自己的服務(wù)器,數(shù)據(jù)庫(kù),大大減少工作量
- api簡(jiǎn)單,使用起來(lái)非常的方便,可大大減少代碼量
- 可通過(guò)網(wǎng)頁(yè)對(duì)數(shù)據(jù)進(jìn)行管理,很方便
Firebase幾個(gè)缺點(diǎn)
- 數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)存儲(chǔ)方式不一致(由于想支持REST方式讀取數(shù)據(jù))
- 不能部署自己的數(shù)據(jù)庫(kù)(很多項(xiàng)目都需要自己維護(hù)數(shù)據(jù)庫(kù)的)
- 目前數(shù)據(jù)操作能力教弱(有很多需求(稍微復(fù)雜點(diǎn)的查詢)目前Firebase很難支持)
- 數(shù)據(jù)分析功能很弱,只能查看流量和當(dāng)前在線人數(shù)(獨(dú)立數(shù)據(jù)庫(kù)的話,這部分很容易做的更強(qiáng)大)
- 不支持離線開(kāi)發(fā)(廢話。。)
總結(jié)一下就是Firebase弱化了數(shù)據(jù)庫(kù)的存在,看起來(lái)很酷,但是現(xiàn)實(shí)情況下出于安全、數(shù)據(jù)分析等考慮,自己維護(hù)數(shù)據(jù)庫(kù)才是更合適的。
為什么使用End
- 如果想部署一個(gè)自己的Firebase,可以考慮使用End
- 增強(qiáng)了數(shù)據(jù)庫(kù)操作能力
- 盡量和Firebase api設(shè)計(jì)一致
- 很方便的和其他Node Package結(jié)合使用
客戶端使用:
var chat = new End('chat','http://localhost:8080'),
chatRoom = chat.child(window.location.search.split('?')[1]),
chatMsgs = chatRoom.child('msgs');
chatMsgs.on('child_added',function(msg){
$('.msgs').append('<div class="msg">'+msg.value.name+' : '+msg.value.text+'</div>');
});
$('#btn_send').click(function(){
var name = $('.txt_send_name').val();
var text = $('.txt_send_text').val();
chatMsgs.push({name:name,text:text});
});評(píng)論
圖片
表情
