基本含義
node.js是一個能夠在伺服器端運行JavaScript的開放原始碼、是一個跨平台JavaScript運行環境。
node.js就是使用javascript編寫,並且運行在伺服器。
也就是說node.js實現了使用js來開發後端。
node.js把js的戰場從瀏覽器轉移到伺服器,可以進行更多的操作。
用戶請求和響應的過程:
在這裡插入圖片描述
產生原因
Node.js的產生原因要追溯到伺服器的阻塞問題:
傳統伺服器每次產生一個請求,就對應著一個線程。
那麼就有一個問題:請求的速度由用戶決定,響應的速度也可以通過提升帶寬等方法比較容易的提升速度。但是I/O的輸入輸出速度是比較難提升的。而每一個請求就會產生一個線程,數據請求又比較慢就會出現有很多線程再緩存中等待,就會造成大量的內存浪費。所以使用Node.js編寫的伺服器採用單線程模式,即不管產生多少請求就只有一個線程,這樣就可以節省空間,大大降低了成本。
我們常說JS是單線程的,這也與它運行在nodejs上的有關。
nodejs特點
Node採用Google開發的V8引擎運行js代碼,使用事件驅動、非阻塞和異步模型等技術來提高性能,可優化應用程式的傳輸量和規模。
Nodejs是基於V8引擎,V8是Google發布的開源JavaScript引擎,本身就是用於Chrome瀏覽器的js解釋部分,但是Ryan Dahl鬼才般地,把這個V8搬到了伺服器上,用於做伺服器的軟體。
Node大部分基本模塊都用JavaScript編寫。在Node出現之前,JS通常作為客戶端程序設計語言使用,以JS寫出的程序常在用戶的瀏覽器上運行。
Node.js的單線程是Node.js的一個最大的優點,但是同時也是它的缺點。
因為畢竟是單線程,如果請求太多會處理不過來的,所以我們一般情況下採用分布式的方法來彌補這個缺點。分布式是指採取多個伺服器,node.js對伺服器的要求不高,所以不必擔心價格問題。
nodejs的用途
nodejs編寫的就是伺服器,所以伺服器有的作用它都有,如:
Web服務API,比如REST
實時多人遊戲
後端的Web服務,例如跨域、伺服器端的請求
基於Web的應用
多客戶端的通信,如即時通信
作為底層開發工具:
`node.js => webpack=> vue,recat腳手架開發方式
node.js的基本使用
node環境搭建
官網:https://nodejs.org/en/
中文官網:http://nodejs.cn/download/
以官網為例:
在這裡插入圖片描述
點擊下載:
下載完有一個.msi文件,雙擊進行安裝即可。
在這裡插入圖片描述
如果安裝.msi文件出現問題可以嘗試在終端輸入:
msiexec /package +msi文件路徑+文件名.msi
查看node是否安裝完成:
在任意文件夾目錄按住shift鍵同時點擊右鍵,出現了在此處打開PowerShell說明安裝成功。
在這裡插入圖片描述
在這裡插入圖片描述也可以cmd在終端直接輸入node,進行驗證
在這裡插入圖片描述
node編寫
終端編寫
配置完成環境變量之後再終端輸入node,就進入了node的編寫:
在這裡插入圖片描述
js文件編寫
node.js的第二種運行方式:
編寫.js文件
在終端cd到文件的路徑文件夾下
(也可以再文件的目錄中輸入cmd,回車,就可以快速進入對應位置的命令行:
在這裡插入圖片描述
)
輸入 node 文件名,就可以運行相應的node代碼了
eg:
hello.js
console.log("hello")
var a =123
var b =456
console.log(a+b)
1
2
3
4
在這裡插入圖片描述
在Vscode上使用node.js運行js代碼
法一:終端運行
打開Vscode的終端
在終端輸入:node 文件路徑\文件名
在這裡插入圖片描述
法二:右鍵Run Code
右鍵Run Code即可運行代碼
nodejs環境和瀏覽器環境的區別
瀏覽器環境:
在這裡插入圖片描述
Node環境:
在這裡插入圖片描述
node特點總結:
和瀏覽器相比node.js環境中是沒有Dom和Bom的
出於安全問題考慮,瀏覽器不支持跨域請求和文件讀寫功能;
而Node.js沒有安全限制可以直接訪問到終端提供的很多的API方法:
所以可以直接操作文系統
進行進程管理(解決單線程問題,在node下可以創建多個進程)
可以進行跨域請求
————————————————
版權聲明:本文為CSDN博主「_洋」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/mantou_riji/article/details/124987322