參考教程 https://www.runoob.com/nodejs/nodejs-tutorial.html
簡單的說 Node.js 就是運(yùn)行在服務(wù)端的 JavaScript。
Node.js 是一個基于Chrome JavaScript 運(yùn)行時建立的一個平臺茬暇。
Node.js是一個事件驅(qū)動I/O服務(wù)端JavaScript環(huán)境峰髓,基于Google的V8引擎尤泽,V8引擎執(zhí)行Javascript的速度非常快膀藐,性能非常好亮靴。——by菜鳥教程
node.js的牛逼之處就在于能讓JavaScript離開瀏覽器環(huán)境,獨(dú)立運(yùn)行缘圈。因此也能用于后端劣光。
為什么選擇node.js
參考鏈接:https://www.zhihu.com/question/20986058/answer/16825178
比較一下目前流行的幾個后端語言:Java, PHP, nodejs, Ruby (on Rails), Python:
- 客觀來講,Java擁有最完整的生態(tài)鏈糟把,目前基于Java的框架绢涡,應(yīng)用非常多,語言本身上手也比較容易遣疯。學(xué)習(xí)Java的話雄可,至少將來5-10年找工作是不成問題。但是我個人非常不喜歡Java另锋,主要原因可能確實(shí)不太了解Java滞项,在為數(shù)不多對Java的印象就是“慢”和“Heavy”(我學(xué)生時代寫過jsp的東西狭归,也不同一竅不通)
- Nodejs:事件驅(qū)動+異步IO讓nodejs最擅長低CPU運(yùn)算夭坪、多IO、高并發(fā)的Web service过椎。Javascript本身就是基于原型的語言室梅,想要真正精通,難度比其余稍微大一點(diǎn)(如果你現(xiàn)在對js掌握就非常好疚宇,就不用擔(dān)心這個了)亡鼠。nodejs變態(tài)的事件驅(qū)動對于代碼的維護(hù)也是一個挑戰(zhàn),當(dāng)然這些都是可以靠牛逼的編程能力克服的敷待。除開語言本身的問題间涵,nodejs最大的毛病還是目前npm里面的包都不太成熟,應(yīng)用于生產(chǎn)環(huán)境稍微有點(diǎn)不穩(wěn)定榜揖。
選擇JavaScript勾哩,只是個人認(rèn)為,js比其他語言來說举哟,更加簡單一些思劳。不過,也正是因?yàn)閖s的語法太過靈活妨猩,在代碼質(zhì)量上就需要加以注意了潜叛。JavaScript不像java一樣有著完善的異常處理機(jī)制,一旦出現(xiàn)異常會導(dǎo)致整個程序退出壶硅,因此威兜,一旦要注意單元測試和異常捕捉。
另外還有個參考如何評價(jià)阿里開源的企業(yè)級 Node.js 框架 EggJS庐椒?
阿里是業(yè)界最早的一批使用 Node.js 來做線上大流量應(yīng)用的公司椒舵,
早在 2011 年的就已經(jīng)開始在生產(chǎn)環(huán)境中使用。
眾所周知扼睬,在阿里的技術(shù)棧中逮栅, Java 是最最核心的悴势,那 Node.js 扮演怎么樣的一個角色呢?
- 基礎(chǔ)設(shè)施大部分采用 Java 實(shí)現(xiàn)措伐,變化較少特纤,有事務(wù)要求的 Business Services 通常使用 Java。
- 而 Node.js 則替代過去 PHP/Java Web 的場景侥加,用在需要快速迭代捧存,需求變化非常快的用戶側(cè)担败。
- 很多內(nèi)部的工程化支撐系統(tǒng)也逐漸基于 Node.js 了昔穴。
簡單的說就是node.js也有大廠實(shí)際應(yīng)用,性上其實(shí)也是完全可靠的
總結(jié)
但最后也要說一句提前,學(xué)習(xí)什么語言并不重要吗货,js也只是其中一種而已。
在菜鳥教程的服務(wù)端教程中狈网,一共有Java, PHP, nodejs, Ruby, Python宙搬、Go等語言教程。這些語言都可用于后端拓哺,選擇一個學(xué)習(xí)即可勇垛。
本人將基于node.js學(xué)習(xí)中遇到的各種困難/坑/問題來寫一些經(jīng)驗(yàn)和心得