Node實戰系列:零基礎入門以前言(01天)

前言

既然說到要入門Node,那麼它必然有其使用的好處,才值得咱們去學習它。首先咱們帶着這樣的疑問?

1. Node.js究竟是什麼?

說白了Node.js存在乎義就是讓JavaScript能夠和其餘的後端語言同樣可以在瀏覽器上運行,它的存在對於JavaScript有了質的飛躍,可讓前端語言JavaScript在寫完以後交給Node.js進行編譯和解釋前端

2. Node.js如何誕生?

計算機處理器智能識別機器語言,而JavaScript是一門高級語言,計算機並不能直接讀懂。因此須要用引擎來將其轉化成計算機所能理解的機器語言。例如,JavaScript自己並無read這麼一個function,然而經過v8,咱們能夠將其綁定到一個用c++寫的readvcallback上,從而經過JavaScript咱們也能夠直接加載文件了。因而藉助於v8種種便利的功能,誕生了Node.jsnode

3. Node.js的優劣(很重要)?

優點:mysql

  • 1:Node.js採用事件驅動、異步編程,爲網絡服務而設計。其實Javascript的匿名函數和閉包特性很是適合事件驅動、異步編程。並且JavaScript也簡單易學,不少前端設計人員能夠很快上手作後端設計
  • 2:Node.js非阻塞模式的IO處理給Node.js帶來在相對低系統資源耗用下的高性能與出衆的負載能力,很是適合用做依賴其它IO資源的中間層服務
  • 3:Node.js輕量高效,能夠認爲是數據密集型分佈式部署環境下的實時應用系統的完美解決方案。Node很是適合以下狀況:在響應客戶端以前,您預計可能有很高的流量,但所需的服務器端邏輯和處理不必定不少

缺點:c++

  • 1:Node.js單線程,只支持單核CPU,不能充分的利用多核CPU服務器。一旦這個進程崩掉,那麼整個web服務就崩掉了。
  • 2:Node.js開啓多個進程,每一個進程綁定不一樣的端口,用反向代理服務器如 Nginx 作負載均衡,好處是咱們能夠藉助強大的 Nginx 作一些過濾檢查之類的操做,同時可以實現比較好的均衡策略,但壞處也是顯而易見就是咱們引入了一個間接層。
  • 3:Node.js多進程綁定在同一個端口偵聽。在Node.js中,提供了進程間發送「文件句柄」 的功能。一個進程負責監聽、接收鏈接,而後把接收到的鏈接平均發送到子進程中去處理。
  • 4:Node.js可靠性低一旦代碼某個環節崩潰,整個系統都崩潰。(緣由:單進程,單線程)

4.Node.js的適合場景

  • 1: 大量Ajax請求的個性化應用,每一個用戶看到的頁面都不同,緩存失效,須要在頁面加載的時候發起Ajax請求,Node.js能響應大量的併發請求,Node.js能響應大量的併發請求
  • 2:能夠處理數萬條鏈接,自己沒有太多的邏輯,只須要請求API,組織數據進行返回便可。因爲響應是少許文本,入站請求也是少許的文本,所以流量不高,一臺機器甚至也能夠處理最繁忙的公司的API需求。
  • 3:Web論壇: nodeclub,是用 Node.js和MongoDB 開發的新型社區軟件,界面優雅,功能豐富,小巧迅速,但你徹底能夠用它搭建本身的社區
  • 4:Web博客:Hexo是一個簡單地、輕量地、基於Node的一個靜態博客框架。經過Hexo咱們能夠快速建立本身的博客,僅須要幾條命令就能夠完成。發佈時,Hexo能夠部署在本身的Node服務器上面,也能夠部署github上面。對於我的用戶來講,部署在github上好處頗多,不只能夠省 去服務器的成本,還能夠減小各類系統運維的麻煩事(系統管理、備份、網絡)。因此,基於github的我的站點
  • 5:對Nodejs有初步的瞭解,接下來看看Node.js的應用場景。Web開發:Express + EJS + Mongoose/MySQL

5.Node.js的應用

  • 1:express 是輕量靈活的Nodejs
  • 2:Web應用框架,它能夠快速地搭建網站。Express框架創建在Nodejs內置的Http模塊上,並對Http模塊再包裝,從而實際Web請求處理的功能
  • 3:ejs 是一個嵌入的Javascript模板引擎,經過編譯生成HTML的代碼。
  • 4:mongoose 是MongoDB的對象模型工具,經過Mongoose框架,能夠進行訪問MongoDB的操做
  • 5:mysql 是鏈接MySQL數據庫的通訊API,能夠進行訪問MySQL的操做

6. Node.js零基礎入門案例

  • 1:首先固然就是環境搭建。
  • 2:數據庫連接,這裏用MySql數據庫;到時候我也會寫一份用MongoDB數據庫的
  • 3:接口的編寫,包括增刪改查
  • 4:日誌的打印
  • 5:項目的部署

若是你恰好在學習 Node 或者對 Node 感興趣。能夠對已下Node系列觀看,系列寫完後會把code上傳到github

相關文章
相關標籤/搜索