Node.js是一個(gè)JavaScript的運行環(huán)境,用來(lái)執行JavaScript代碼。 為什么會(huì )出現這么一個(gè)運行環(huán)境呢,從JavaScript研發(fā)初衷可以看出它是為了運行在瀏覽器中的,讓網(wǎng)頁(yè)交互更加便捷。但是隨著(zhù)JavaScript影響力不斷壯大,它的使用范圍已經(jīng)發(fā)生了變化。2009年,Node.js發(fā)布,初代版本支持基本的網(wǎng)絡(luò )通信和文件系統操作,這讓JavaScript可以到服務(wù)器上大展拳腳,標志著(zhù)JavaScript可以用于服務(wù)器端編程。 Node.js中node是指一個(gè)節點(diǎn),在這里我們可以用來(lái)形容一種環(huán)境,而后面.js則是代表這是針對JavaScript的,防止與其他的node項目混淆,但是隨著(zhù)Node.js知名度越來(lái)越高,現在幾乎直接以node代指Node.js了。 Node.js的出現推動(dòng)了JavaScript的全棧開(kāi)發(fā),允許開(kāi)發(fā)者使用同一種語(yǔ)言編寫(xiě)前端和后端代碼。 Node.js除了提供JavaScript運行環(huán)境外,還提供了豐富的模塊庫,可以直接在開(kāi)發(fā)時(shí)引入,使得開(kāi)發(fā)更加高效和便捷。 Node.js采用了事件驅動(dòng)、非阻塞式I/O模型,這意味著(zhù)它可以在單線(xiàn)程上處理大量并發(fā)連接。傳統的服務(wù)端編程模型通常是多線(xiàn)程或多進(jìn)程的,每個(gè)連接都需要一個(gè)獨立的線(xiàn)程或進(jìn)程來(lái)處理,這在處理大量并發(fā)連接時(shí)會(huì )造成很大的性能損耗。而Node.js通過(guò)事件循環(huán)和回調函數的方式,實(shí)現了非阻塞式I/O操作,使得單個(gè)線(xiàn)程可以處理更多的并發(fā)連接,從而提高了整體性能。 本小節演示環(huán)境系統為ubuntu22.04,其他發(fā)行版Linux系統除命令有細微差別外,其余一致。 在開(kāi)始操作之前,我們再簡(jiǎn)單了解幾個(gè)與Node.js相關(guān)的概念,可以幫助我們更了解自己接下來(lái)的操作。 nvm:即Node Version Manager,根據名字很明顯可以看出,這是用來(lái)安裝和管理Node.js版本的。 npm:即Node Package Manager,我們之前提到過(guò)Node.js里面除了攜帶了V8引擎,還攜帶了很多模塊庫,npm則是負責管理這些功能模塊庫的,這些功能模塊也就是我們所說(shuō)的項目依賴(lài)。目前版本的npm會(huì )隨著(zhù)Node.js的安裝一同被安裝,所以非特殊情況不用單獨安裝。 1.使用nvm安裝和管理Node.js官網(wǎng)提供了如何使用nvm來(lái)安裝Node.js,想深入了解可移步:https://nodejs.org/en/download/package-manager 下面將展示在ubuntu系統下進(jìn)行安裝的簡(jiǎn)單流程: 1.1 安裝nvm使用如下命令安裝nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash 如果你的網(wǎng)絡(luò )無(wú)法拉取github的內容,可以使用如下方法通過(guò)gitee來(lái)安裝nvm #先安裝git sudo apt-get install git #再安裝nvm curl -o- https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh | bash 安裝完畢后,可以看到用戶(hù)目錄中多了.nvm文件夾 安裝完畢后,可以重新打開(kāi)終端或者運行以下命令來(lái)讓nvm立即生效: source ~/.nvm/nvm.sh nvm生效后,可以使用nvm -v命令來(lái)檢查nvm版本 使用剛剛安裝的nvm來(lái)安裝Node.js,執行如下命令,可以安裝最新的穩定版Node.js nvm install node 若想安裝非最新版,而想指定版本進(jìn)行安裝,使用如下命令,例如安裝16.20.2版本的Node.js nvm install 16 當然也可以安裝其他更多的版本,這些版本都會(huì )受到nvm管理,并且可以通過(guò)nvm來(lái)對這些版本進(jìn)行操作,例如使用如下命令查看當前安裝的版本: nvm list 通過(guò)下圖可以看到我們已經(jīng)安裝了16和22版本的Node.js,下面是nvm工具中一些版本的別名,我們可以忽略。當前使用的版本是16.20.2版本。 如果想切換Node.js版本環(huán)境進(jìn)行開(kāi)發(fā),使用如下命令: nvm use 22 下圖中可以看到已經(jīng)切換為22版本了 創(chuàng )建一個(gè)名為getUptime.js的JavaScript程序,簡(jiǎn)單寫(xiě)入一個(gè)功能,使用內置模塊功能獲取系統運行時(shí)間 const os = require('os') // 引入os模塊 const uptime = os.uptime() // 獲取系統運行時(shí)間 console.log(`system uptime: ${uptime} sec`) 保存后,使用如下命令執行該文件 node getUptime.js 得到如下輸出內容 可以看到在這個(gè)簡(jiǎn)單的操作中,Node.js扮演了很重要的角色,它不止能運行JavaScript程序,也給JavaScript提供了豐富的模塊庫。除了內置模塊外,Node.js還支持通過(guò)npm引入第三方模塊生態(tài)系統,這些模塊可以為JavaScript提供幾乎無(wú)限的擴展能力。 文章轉載來(lái)源:https://www.ebyte.com/news/3701.html |