最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

了不起的node.js讀書(shū)筆記之node.js中的特性

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

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

1.先讀讀書(shū)

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • 使用Node.js實(shí)現(xiàn)Clean?Architecture方法示例詳解

    使用Node.js實(shí)現(xiàn)Clean?Architecture方法示例詳解

    這篇文章主要為大家介紹了使用Node.js實(shí)現(xiàn)Clean?Architecture方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 原生nodejs使用websocket代碼分享

    原生nodejs使用websocket代碼分享

    本文給大家分享的是在原生的nodejs中如何使用websocket實(shí)現(xiàn)信息傳輸,非常實(shí)用,有需要的小伙伴可以參考下
    2018-04-04
  • 總結(jié)幾道關(guān)于Node.js的面試問(wèn)題

    總結(jié)幾道關(guān)于Node.js的面試問(wèn)題

    這篇文章主要總結(jié)了幾道關(guān)于Node.js的面試問(wèn)題,通過(guò)這些問(wèn)題就來(lái)判斷一個(gè)人的Node.js水平是不太嚴(yán)謹(jǐn)?shù)?,但是它能讓你?duì)面試者在Node.js上的經(jīng)驗(yàn)如何有個(gè)大概的了解。有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • 詳解express + mock讓前后臺(tái)并行開(kāi)發(fā)

    詳解express + mock讓前后臺(tái)并行開(kāi)發(fā)

    這篇文章主要介紹了詳解express + mock讓前后臺(tái)并行開(kāi)發(fā),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 利用node.js+mongodb如何搭建一個(gè)簡(jiǎn)單登錄注冊(cè)的功能詳解

    利用node.js+mongodb如何搭建一個(gè)簡(jiǎn)單登錄注冊(cè)的功能詳解

    這篇文章主要給大家介紹了關(guān)于利用node.js+mongodb如何搭建一個(gè)簡(jiǎn)單登錄注冊(cè)功能的相關(guān)資料,文中通過(guò)示例代碼介紹非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • node-red File讀取好保存實(shí)例講解

    node-red File讀取好保存實(shí)例講解

    在本篇文章里小編給大家整理了關(guān)于node-red File讀取好保存的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。
    2019-09-09
  • 詳解通過(guò)源碼解析Node.js中cluster模塊的主要功能實(shí)現(xiàn)

    詳解通過(guò)源碼解析Node.js中cluster模塊的主要功能實(shí)現(xiàn)

    這篇文章主要介紹了詳解通過(guò)源碼解析Node.js中cluster模塊的主要功能實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 簡(jiǎn)單了解node npm cnpm的具體使用方法

    簡(jiǎn)單了解node npm cnpm的具體使用方法

    這篇文章主要介紹了簡(jiǎn)單了解node npm cnpm的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Node.js報(bào)錯(cuò)信息Error:?Cannot?find?module?'XXX'問(wèn)題及解決

    Node.js報(bào)錯(cuò)信息Error:?Cannot?find?module?'XXX'問(wèn)題及解

    這篇文章主要介紹了Node.js報(bào)錯(cuò)信息Error:?Cannot?find?module?'XXX'問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • nodejs mysql 實(shí)現(xiàn)分頁(yè)的方法

    nodejs mysql 實(shí)現(xiàn)分頁(yè)的方法

    本篇文章主要介紹了nodejs mysql 實(shí)現(xiàn)分頁(yè)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論

城固县| 平塘县| 施秉县| 白河县| 江安县| 南昌县| 酒泉市| 安远县| 松原市| 瓮安县| 安陆市| 台前县| 虎林市| 平遥县| 东源县| 攀枝花市| 新营市| 凤阳县| 喜德县| 海兴县| 云和县| 康马县| 甘南县| 东宁县| 溧阳市| 穆棱市| 桐城市| 十堰市| 固始县| 齐齐哈尔市| 兴隆县| 呈贡县| 雅江县| 云霄县| 阿图什市| 南丹县| 崇阳县| 瑞安市| 平武县| 丹江口市| 阿鲁科尔沁旗|