欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

了不起的node.js讀書筆記之node.js中的特性

 更新時間:2014年12月22日 10:06:44   投稿:hebedich  
這篇文章主要介紹了了不起的node.js讀書筆記之node.js中的特性,需要的朋友可以參考下

環(huán)境的變化帶來了技術(shù)大躍進,機遇和挑戰(zhàn)同時到來?;谖襧s也沒有學,只好趕鴨子上架一起學了。(>﹏<)

1.先讀讀書

  一開始就不知死活地看《深入淺出node.js》,弄得團團轉(zhuǎn),看完才知道這本書是要一定基礎(chǔ)的。在網(wǎng)上搜刮到了41頁的《node入門》,自己學著搭建了一個Web應(yīng)用。并且在刷新成就感后,就抱讀《了不起的node.js》?,F(xiàn)準備看完這本書后再回讀《深入淺出node.js》。

2.搭建環(huán)境 運行g(shù)it上的例程(3次報錯)

  在官網(wǎng)下載msi后,一路next。輸入命令npm install時,報錯"npm ERR! not found: git"。原因是新電腦沒有按照git。

  安裝外部依賴包時,報錯"gyp ERR! configure error",原因也是Python環(huán)境沒有。而且這個依賴包只能在低版本下安裝。最后一次報錯是"MSBUILD:error MSB3428:未能加載Visual C++組件"VCBuild.exe"",在安裝.net framework 2.0 SDK和mvs2005后還是報錯。果斷棄了。

3.第一個Web應(yīng)用

  在運行完"Hello World"后,開始編寫一個完全基于Node的Web應(yīng)用。首先需要啟動服務(wù)器模塊,http模塊中的createServer函數(shù)返回的對象有一個listen([PORT])方法監(jiān)聽端口。這個函數(shù)的參數(shù)很奇怪,是一個函數(shù)定義。在JavaScript中,一個函數(shù)可以作為另一個函數(shù)接收一個參數(shù),參數(shù)函數(shù)就叫匿名函數(shù)。而使用這種方法的原因是node采用了基于事件驅(qū)動的回調(diào)。當服務(wù)器在單進程接收到一個請求時,就會調(diào)用這個函數(shù)來處理這個請求。當有相應(yīng)的事件發(fā)生時,createServer函數(shù)就調(diào)用這個函數(shù)來回調(diào)。

  在完成接收http請求后,我們就要處理請求了。首先,我們抽象地把請求提出不同的URL和GET、POST參數(shù)。這里用到了兩個內(nèi)部模塊URL(解析URL)、Query String(處理查詢字符串)。并且通過依賴注入的方式把router模塊添加進去。接著,需要完成處理請求的模塊,才完善路由。請求先全部通過一個對象(handle)進行模塊間的傳遞,并讓處理程序能做出響應(yīng)。一般來說,讓請求處理程序通過onRequest函數(shù)直接返回(return())他們要展示給用戶的信息。不過,在進行阻塞操作時會非常耗時,所以我們要使用非阻塞操作。使用回調(diào),通過將函數(shù)作為參數(shù)傳遞給其他需要花時間做處理的函數(shù)。相比采用將內(nèi)容傳遞給服務(wù)器的方式,我們這次采用將服務(wù)器“傳遞”給內(nèi)容的方式。就是將response對象(從服務(wù)器的回調(diào)函數(shù)onRequest()獲?。┳鳛楹瘮?shù)參數(shù)通過路由傳遞給處理程序。這樣,處理程序就可以調(diào)用該對象上的函數(shù)。

  接下來再進行處理環(huán)節(jié),通過表單來上傳圖片,這里用到了外部依賴包formidable來接收圖片。這個模塊就是用來處理表單和上傳文件的。首先使用var form = new formidable.IncomingForm();來獲得一個表單對象。這個對象的parse方法可以解析處理表單數(shù)據(jù)。我們就很簡單地把文件保存起來。而保存文件則使用了fs模塊。通過重命名方法來指定保存的位置,通過使用同步的方法renameSync()可以使得保存文件行為先于展示圖片行為。

  展示圖片則十分簡單,通過fs的readFile方法讀取文件,在其回調(diào)函數(shù)中使用response.write(file, "binary")就可以在瀏覽器中展示圖片。

  總結(jié)一下:通過這個例程,我們了解到了node.js中的特性,如單線程、異步、事件驅(qū)動等。其中一些抽象概念也通過例程展示了一遍,但還需深入了解。通過例程學習就是需要在不懂時查閱資料,這種學習方法也是很好的Input-Person-Output型的方法。

相關(guān)文章

  • Node.js查詢MySQL并返回結(jié)果集給客戶端的全過程

    Node.js查詢MySQL并返回結(jié)果集給客戶端的全過程

    nodejs最大的優(yōu)勢也是大家用著最為難以理解的一點,就是它的異步功能,它幾乎所有的io操作都是異步的,這也就導(dǎo)致很多人不理解也用不習慣,下面這篇文章主要給大家介紹了關(guān)于Node.js查詢MySQL并返回結(jié)果集給客戶端的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Node.js入門筆記?之a(chǎn)sync模塊

    Node.js入門筆記?之a(chǎn)sync模塊

    這篇文章主要介紹了Node.js入門筆記?之a(chǎn)sync模塊,async是一個異步處理模塊,主要有三個方式:串行無關(guān)聯(lián)、并行無關(guān)聯(lián)?、串行有關(guān)聯(lián),文章圍繞主題展開更多的相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-06-06
  • nodejs初步體驗篇

    nodejs初步體驗篇

    這篇文章主要介紹了nodejs初步體驗篇的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • node.js入門教程之querystring模塊的使用方法

    node.js入門教程之querystring模塊的使用方法

    querystring模塊主要用來解析查詢字符串,下面這篇文章主要介紹了關(guān)于node.js中querystring模塊使用方法的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • NodeJS 創(chuàng)建目錄和文件的方法實例分析

    NodeJS 創(chuàng)建目錄和文件的方法實例分析

    這篇文章主要介紹了NodeJS 創(chuàng)建目錄和文件的方法,涉及node.js中fs模塊mkdir、writeFile及目錄判斷existsSync等方法的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2023-04-04
  • node腳本實現(xiàn)自動化簽到和抽獎功能

    node腳本實現(xiàn)自動化簽到和抽獎功能

    本文主要介紹了node腳本實現(xiàn)自動化簽到和抽獎功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Nodejs異步流程框架async的方法

    Nodejs異步流程框架async的方法

    這篇文章主要介紹了Nodejs異步流程框架async的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 使用pm2部署node生產(chǎn)環(huán)境的方法步驟

    使用pm2部署node生產(chǎn)環(huán)境的方法步驟

    這篇文章主要介紹了使用pm2部署node生產(chǎn)環(huán)境的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Nodejs學習筆記之Stream模塊

    Nodejs學習筆記之Stream模塊

    nodejs的fs模塊并沒有提供一個copy的方法,但我們可以很容易的實現(xiàn)一個,這種方式是把文件內(nèi)容全部讀入內(nèi)存,然后再寫入文件,對于小型的文本文件,這沒有多大問題,比如grunt-file-copy就是這樣實現(xiàn)的。
    2015-01-01
  • node文件批量重命名的方法示例

    node文件批量重命名的方法示例

    本篇文章主要介紹了node文件批量重命名的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論