[讀書筆記]了不起的node.js(三)

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   io   檔案   

  這周的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一個對象來。現在貼在下面分享。

 1 function dump(arr,level) { 2     var dumped_text = ""; 3     if(!level) level = 0; 4      5     //The padding given at the beginning of the line. 6     var level_padding = ""; 7     for(var j=0;j<level+1;j++) level_padding += "    "; 8      9     if(typeof(arr) == ‘object‘) { //Array/Hashes/Objects 10         for(var item in arr) {11             var value = arr[item];12             13             if(typeof(value) == ‘object‘) { //If it is an array,14                 dumped_text += level_padding + "‘" + item + "‘ ...\n";15                 dumped_text += dump(value,level+1);16             } else {17                 dumped_text += level_padding + "‘" + item + "‘ => \"" + value + "\"\n";18             }19         }20     } else { //Stings/Chars/Numbers etc.21         dumped_text = "===>"+arr+"<===("+typeof(arr)+")";22     }23     return dumped_text;24 }

下一周開始學mongoDB,node的學習主要還是通過學習常式、閱讀源碼API來提高。畢竟node的優點就是網路上大片的np。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.