首頁 >web前端 >js教程 >了不起的node.js讀書筆記之例程分析_node.js

了不起的node.js讀書筆記之例程分析_node.js

WBOY
WBOY原創
2016-05-16 16:25:081128瀏覽

這週的nodejs學習內容為幾個依賴套件的使用,把書上的例子都敲了一遍。這篇就以例程為線索,複習一下一週的工作。

1.connect

  這個例程主要是使用connect依賴包,connect提供一個中間件(由函數組成,與請求、回應物件互動)的功能。書中也介紹了connect內建其他的中間件,這些中間件起到組織代碼完成web功能的作用。

2.session

  使用connect進行使用者會話,進行基本的登入系統。透過中間件實現了檢查登入、展示表單、使用者匹配、處理登出的功能。展示了中間件的強大和組織方式。

3.express-tweet

  這章學習了用express包,express是基於connect。程式設計依舊簡單,不過版本不同的np中,函數名稱會產生一些變化,例如express.createServer()在3.0後就變成了express()。使用express最大的益處就是它簡潔又不失靈活。不過tweet訪問不到,改寫成微博時,weibo的API存取又過於複雜,這個程式其實是沒有成功跑起來的。

4.echo

  這兩個例程使用的是WebSocket包,echo的功能主要就是記錄訊息傳輸的時間。 Websocket的調戲方式就ws來監聽(on)一個事件,在回呼函數中進行處理,在html檔案中也要使用js進行訊息的互動。

5.cursors

  本例學習到了廣播,這個功能透過自己寫的一個broadcast函數來處理。在確保遊標元素是否存在時,是透過DOM的ID查找來完成的。

6.chat

  這一章可以說是這本書的重頭戲,因為Socket.IO包就是作者開發的。它與WS的不同在與它的訊息傳遞是基於傳輸而不全是WS。這個例程時先實現聊天功能,再實現廣播歌曲(DJ)功能。過程中也沒有遇到什麼大問題。一個流程就是socket.emit一個事件,另一端socket就監聽到這個事件,並對其進行處理。

7.總結

  這週效率還蠻不錯的,遇到的問題依然放在了evernote上。問題以前也出現過就是localhost與127.0.0.1的差別。這週在調試js過程中習得了一個函數,可以讓js想php一樣dump一個物件來。現在貼在下面分享。

複製程式碼 程式碼如下:

 function dump(arr,level) {
     var dumped_text = "";
     if(!level) level = 0;
    
     //The padding given at the beginning of the line.
     var level_padding = "";
     for(var j=0;j     
     if(typeof(arr) == 'object') { //Array/Hashes/Objects
         for(var item in arr) {
             var value = arr[item];
            
             if(typeof(value) == 'object') { //If it is an array,
                 dumped_text = level_padding "'" item "' ...n";
                 dumped_text = dump(value,level 1);
             } else {
                 dumped_text = level_padding "'" item "' => "" value ""n";
             }
         }
     } else { //Stings/Chars/Numbers etc.
         dumped_text = "===>" arr "      }
     return dumped_text;
 }

下一週開始學mongoDB,node的學習主要還是透過學習程式、閱讀原始碼API來提升。畢竟node的優點就是網路上大片的np。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn