首先明確一個(gè)概念聋呢,什么是node.js苗踪,基本上對(duì)node.js有興趣的朋友大部分都是jser,我們或多或少的都見識(shí)過那些代碼削锰,和我們前端平時(shí)寫的代碼看起來是差不多的語法通铲,其實(shí)我們知道全是js代碼,但是我們?cè)谀切┐a里面看不到熟悉的window.onload,document.getElementById之類的東西器贩,替代的是一堆堆的module.exports,require,process.stdin,process.stdout等颅夺,
OK,我們?yōu)榱死斫馐裁词莕ode.js蛹稍,我們先回顧一下我們的的客戶端編程吧黄,我們?cè)谀~的js基礎(chǔ)課程里面學(xué)習(xí)過js的三大組成部分(DOM、BOM和ECMAScript)稳摄,其實(shí)當(dāng)時(shí)我們隱瞞了一個(gè)細(xì)節(jié)稚字,我們真正的js純粹的理解的話,應(yīng)該只需要學(xué)完ECMAScript就夠了,因?yàn)槠鋵?shí)所謖的DOM和BOM之類的都是屬于JS這門語言在瀏覽器中的應(yīng)用,如果我們年紀(jì)夠早的時(shí)候指煎,我們接觸過的applet或者flash也是可以完成現(xiàn)在的js同樣的功能的,說白了昌讲,因?yàn)槲覀兊腸hrome等瀏覽器為我們提供了一種叫JS引擎的東西,所以他能夠讀取我們的JS代碼進(jìn)行執(zhí)行减噪,也就是為我們提供了一個(gè)運(yùn)行JS的環(huán)境短绸。其實(shí)我們的node.js也可以理解成是一種為我們js提供了一種運(yùn)行的環(huán)境车吹,只不過這個(gè)運(yùn)行環(huán)境和我們的瀏覽器的JS運(yùn)行環(huán)境有一點(diǎn)不太一樣的地方,它的出現(xiàn)不是為了頁(yè)面服務(wù)的醋闭,而是運(yùn)行在服務(wù)器上面窄驹,和我們后端語言php,java等起到的作用是一樣的,說到這里证逻,大家應(yīng)該明白了乐埠,其實(shí)node.js對(duì)我們前端的作用而言就是我們之前一直只能在客戶端做事情,現(xiàn)在我們突然可以利用node來做一些和后臺(tái)PHP等同樣的事情了囚企,如果我們平時(shí)的工作由只是為頁(yè)面的交互寫一些JS代碼轉(zhuǎn)變成了寫node.js代碼丈咐,可以說你的角色已經(jīng)轉(zhuǎn)變成了后端工程師了,這個(gè)我們知道的阿里還有雪球等國(guó)內(nèi)知名公司已經(jīng)有這樣的職位了龙宏。
我們先來感受一下node的魅力吧:
需求一:我想做一個(gè)聊天室怎么辦棵逊?
https://github.com/moyu-edu/chat-websocket
需求二:我想做一個(gè)服務(wù)器
需求三:我想用node做博客ghost,hexo
需求四:我想用node連接數(shù)據(jù)庫(kù)mongoose
需求五:我要記錄服務(wù)器的日志log4j.js 是不是很強(qiáng)大?
我們?cè)谙乱还?jié)里面講解怎么安裝node