學習node.js+express+mongdb精簡理解

node.js簡而言之是運行在服務端上JavaScript。

優(yōu)點:事件機制,異步,無阻塞的,輕量高效,單進程線程,占用服務器資源少,高并發(fā)支持好。
適用于消息實時推送,聊天系統(tǒng),社交平臺等高并發(fā),I/O密集型。
缺點:

  1. 異步編程的缺點往往就是到處callback,會讓人不知所措;

  2. 不適合做企業(yè)級應用開發(fā),特別是復雜業(yè)務邏輯的,代碼不好維護,事務支持不是很好。

事件機制:
參考了(http://www.cnblogs.com/zhongweiv/p/nodejs_module.html#module_exports_diff)這篇文章。
NodeJS被設計用來解決服務端阻塞問題.通過一段簡單的代碼解釋何為阻塞:
Js代碼

1. //根據ID,在數據庫中Persons表中查出Name  
2. var name = db.query("select name from persons where id=1");  
3. //進程等待數據查詢完畢,然后使用查詢結果.  
4. output("name")  

node.js如何解決阻塞問題
解決這個問題的辦法是,建立一種事件機制,發(fā)起查詢請求之后,立即將進程交出,當數據返回后觸發(fā)事件,再繼續(xù)處理數據:
Js代碼

1. //定義如何后續(xù)數據處理函數  
2. function onDataLoad(name){  
3.     output("name");  
4. }  
5. //發(fā)起數據請求,同時指定數據返回后的回調函數  
6. db.query("select name from persons where id=1",onDataLoad);  

說到底就是一個回調函數的原理。

Express框架建立在node.js內置的http模塊上。Express 支持各種模板引擎,express 命令行可以添加對 Jade,EJS,JSHTML 和 Hogan 的支持。
1.設置中間件來響應http的請求;
2.定義了路由用來執(zhí)行不同的http的請求動作;
3.可以通過向模板傳遞參數動態(tài)渲染html頁面。
通過終端命令行或者是webstorm開發(fā)工具,可以自動生成一個簡單的http的服務器

mongodb是文檔型數據庫,存儲對象及JSON形式的數據,返回一個json對象。
user表:
{‘name’:'Alice',
'age':'18'
}
mongoose是mongodb的建模工具,schema是一個文檔數據結構,在mongoose中是json對象,跟mvc中的model相似。
(上班時間就隨筆寫一下哈~請見諒!寫的好粗略,有空再續(xù)寫。。。(__) -by Alice Ye)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 搭建開發(fā)環(huán)境并模擬交互數據 一、實驗說明 下述介紹為實驗樓默認環(huán)境,如果您使用的是定制環(huán)境,請修改成您自己的環(huán)境介...
    玄月府的小妖在debug閱讀 2,236評論 0 15
  • JavaScript 模塊化編程 網站越來越復雜,js代碼、js文件也越來越多,會遇到什么問題? 命名沖突; 文件...
    magic_pill閱讀 1,580評論 0 1
  • 學英語咋就這么難?多少人在小學,初中,高中,大學的時候,因為英語的阻攔而失去了學習的信心。從自己的體會看,主要原因...
    未來已來FutureHere閱讀 193評論 0 0
  • “我聽不見你的聲音,在最北的山頂”,耳機里單曲循環(huán)著謝知非的《荒島》,音量被開到了最大,秋卻除了車輪碾壓過鐵軌時”...
    露楓閱讀 479評論 0 0

友情鏈接更多精彩內容