Nodo.js :十問十答

問:什么是Nodo.js?###

答:Node.js 是基于Google V8 引擎的JavaScript 運(yùn)行環(huán)境,使用事件驅(qū)動示括、非阻塞式I/O的模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集的實(shí)時(shí)應(yīng)用痢畜。


問:怎么學(xué)習(xí)Node.js垛膝?###

答:

  1. www.nodejs.org 關(guān)注Node.js的版本升級鳍侣,新特性的加入,重要bug 的修復(fù);
  2. www.npmjs.com Node.js模塊社區(qū);
  3. www.github.com 開源平臺;
  4. www.stackoverflow.com 技術(shù)問答社區(qū)吼拥。

問:Node.js如何選擇版本倚聚?###

答:Node.js 偶數(shù)位為穩(wěn)定版本,如:-0.6.x凿可、-0.8.x惑折、-0.10.x;奇數(shù)位為不穩(wěn)定版本枯跑,如:-0.7.x唬复、-0.9.x、-0.11.x 全肮。


問:Windows如何安裝Node.js敞咧?###

答:

  1. 下載 Git bash 安裝;
  2. 下載 Node.js 安裝辜腺;
  3. 配置環(huán)境變量休建,例:Win8右鍵左下角小磁塊-系統(tǒng)-高級系統(tǒng)設(shè)置-系統(tǒng)變量-Path-編輯,在其后追加Node.js 的安裝路徑评疗;


    配置環(huán)境變量
  4. 測試是否安裝成功测砂,打開Git或命令行,輸入node -v百匆、npm -v返回版本號即安裝成功砌些。


    測試安裝是否成功

啟動一個(gè)Web服務(wù)器###

  1. 新建工作目錄-新建server.js文件

文件內(nèi)容
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log('Server running at http://${hostname}:${port}/'); });

  1. 打開命令行,切換到工作目錄加匈,輸入node server.js存璃,打開瀏覽器訪問http://127.0.0.1:3000/,頁面中返回Hello World 雕拼。

瀏覽器執(zhí)行環(huán)境與Node.js執(zhí)行環(huán)境的異同###

相同點(diǎn):都能執(zhí)行普通的js代碼纵东;
不同點(diǎn):全局變量不同,例如:window啥寇,document等只能在瀏覽器中取到偎球,而process只能在node中取到,Node.js 本質(zhì)上是一個(gè)js的運(yùn)行環(huán)境辑甜,其封裝和底層的處理賦予了更強(qiáng)的能力衰絮。

Node.js 的模塊與Commonjs 的規(guī)范###

JS天生缺少命名管理機(jī)制,來隔離實(shí)現(xiàn)不同功能的js片段磷醋,避免相互污染猫牡。
為了解決此問題,我們經(jīng)常采用命名空間子檀,把變量和函數(shù)限制在某個(gè)特定的作用域內(nèi)镊掖。

不同于jQuery,commonjs是一套規(guī)范褂痰。包括modules模塊亩进、packages包、system系統(tǒng)缩歪、binary二進(jìn)制归薛、console控制、 encodings編碼匪蝙、sokets套接字主籍、unit test單元測試。來約定js應(yīng)該怎么來組織逛球,應(yīng)該怎么去編寫千元。

首先是把這些執(zhí)行不同任務(wù)的特定的代碼塊或文件,看做是一個(gè)獨(dú)立的模塊颤绕,每個(gè)模塊可以看做是一個(gè)獨(dú)立的作用域幸海,但不是孤立的,可能存在依賴關(guān)系奥务。

對于一個(gè)模塊可能分成三個(gè)關(guān)鍵部分:定義物独、標(biāo)識、引用氯葬。這種設(shè)計(jì)規(guī)范挡篓,不斷成長壯大,對很多開源項(xiàng)目有很大影響帚称。

nodejs和Couchdb就是對Commonjs的實(shí)現(xiàn)官研,而且規(guī)范和實(shí)現(xiàn)互為促進(jìn),形成一個(gè)良性的循環(huán)鏈闯睹。

nodejs借鑒了commonjs的這種模塊組織理念阀参,實(shí)現(xiàn)了一套模塊管理系統(tǒng)。在nodejs里面每個(gè)js文件可以看做是一個(gè)獨(dú)立的模塊瞻坝,在它里面不需要有命名空間蛛壳。不必?fù)?dān)心變量、方法的污染所刀、隔離衙荐。

同時(shí)這些模塊(或者說是文件)通過彼此的引入,可以組合起來形成一個(gè)更強(qiáng)大的模塊(或者是功能包)浮创。

我們安裝nodejs時(shí)會自動安裝npm這個(gè)包管理工具忧吟。通過npm包管理工具,我們可以往項(xiàng)目里面引入各種形形色色的功能模塊斩披。他們或簡單或復(fù)雜溜族,但每個(gè)都是獨(dú)立的讹俊,完整的。


Node.js模塊的分類###

  1. 核心模塊
  2. 文件模塊
  3. 第三方模塊

模塊的流程###

創(chuàng)建模塊-導(dǎo)出模塊-加載模塊-使用模塊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煌抒,一起剝皮案震驚了整個(gè)濱河市仍劈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寡壮,老刑警劉巖贩疙,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異况既,居然都是意外死亡这溅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門棒仍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悲靴,“玉大人,你說我怎么就攤上這事莫其《钥ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵榜配,是天一觀的道長否纬。 經(jīng)常有香客問我,道長蛋褥,這世上最難降的妖魔是什么临燃? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮烙心,結(jié)果婚禮上膜廊,老公的妹妹穿的比我還像新娘。我一直安慰自己淫茵,他們只是感情好爪瓜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匙瘪,像睡著了一般铆铆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丹喻,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天薄货,我揣著相機(jī)與錄音,去河邊找鬼碍论。 笑死谅猾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播税娜,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼坐搔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了敬矩?” 一聲冷哼從身側(cè)響起概行,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谤绳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袒哥,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缩筛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堡称。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞎抛。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖却紧,靈堂內(nèi)的尸體忽然破棺而出桐臊,到底是詐尸還是另有隱情,我是刑警寧澤晓殊,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布断凶,位于F島的核電站,受9級特大地震影響巫俺,放射性物質(zhì)發(fā)生泄漏认烁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一介汹、第九天 我趴在偏房一處隱蔽的房頂上張望却嗡。 院中可真熱鬧,春花似錦嘹承、人聲如沸窗价。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撼港。三九已至,卻和暖如春骤竹,著一層夾襖步出監(jiān)牢的瞬間餐胀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工瘤载, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留否灾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓鸣奔,卻偏偏與公主長得像墨技,于是被迫代替她去往敵國和親惩阶。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 個(gè)人入門學(xué)習(xí)用筆記扣汪、不過多作為參考依據(jù)断楷。如有錯(cuò)誤歡迎斧正 目錄 簡書好像不支持錨點(diǎn)、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,458評論 1 37
  • ## 前端開發(fā)的工具 ### 編輯器: 1. 輕量級的崭别,依靠插件:sublime冬筒;atom(github);vs ...
    浪流兒閱讀 3,182評論 0 2
  • Node.js是目前非趁┲鳎火熱的技術(shù)舞痰,但是它的誕生經(jīng)歷卻很奇特。 眾所周知诀姚,在Netscape設(shè)計(jì)出JavaScri...
    Myselfyan閱讀 4,066評論 2 58
  • Node.js是目前非诚炫#火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特赫段。 眾所周知呀打,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,610評論 2 41