Node.js簡介

00心平氣和00 發佈 2022-10-11T06:28:40.602996+00:00

Node.js是一個能夠在伺服器端運行JavaScript的開放原始碼、是一個跨平台JavaScript運行環境。

基本含義

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

關鍵字: