Node.js簡介及安裝

一、Nodejs簡介

1、核心定義

????????Node.js 是一個基于 Chrome V8 引擎的開源、跨平臺 JavaScript 運行時環境(Runtime),用于在服務器端或本地運行 JavaScript 代碼。它并非編程語言、庫或框架,而是擴展了 JavaScript 的能力,使其脫離瀏覽器沙盒,能夠訪問文件系統、網絡等系統資源,實現全棧開發。

2、核心特點

????????Node.js 的設計理念圍繞“高效處理并發”展開,關鍵特點如下:

????????◆?非阻塞 I/O(事件驅動):處理文件讀寫、網絡請求等 I/O 操作時,不等待結果返回,而是繼續處理其他請求;當 I/O 完成后,通過回調函數通知主線程。這種模式大幅提高了 I/O 密集型應用的并發能力。

????????◆?單線程架構:使用一個主線程處理事件循環(Event Loop),避免了多線程切換的開銷和復雜性。但單線程意味著無法并行處理 CPU 密集型任務(如復雜計算),否則會阻塞整個進程。

????????◆?跨平臺支持:可在 Windows、Linux、macOS 等操作系統上運行,實現“一次編寫,多處部署”。

????????◆?高性能 V8 引擎:基于 Google Chrome 的 V8 引擎,將 JavaScript 代碼編譯為機器碼執行,執行速度快,性能出色。

3、核心組成與模塊

????????Node.js 的功能由內置核心模塊和第三方模塊共同支撐:

????????1. 內置核心模塊(無需安裝,直接使用)

????????◆?fs:文件系統操作(如讀取、寫入、刪除文件);

????????◆?http/https:創建 HTTP/HTTPS 服務器和客戶端,處理網絡請求;

????????◆?path:處理文件路徑(如拼接、解析路徑);

????????◆?os:獲取操作系統信息(如 CPU 架構、內存容量);

????????◆?events:實現事件驅動機制(如自定義事件、監聽事件);

????????◆?stream:處理數據流(如文件流、網絡流),提高 I/O 效率。

????????2. 第三方模塊(通過 npm 管理)

????????npm(Node Package Manager):Node.js 的包管理工具,是全球最大的 JavaScript 開源庫生態系統。開發者可通過 npm install 命令快速安裝第三方模塊(如 npm install express 安裝 Express 框架),也可發布自己的模塊供他人使用。

4、適用場景

????????Node.js 適合I/O 密集型應用(而非 CPU 密集型),常見場景包括:

????????◆?實時應用:如實時聊天(微信小程序后端)、視頻流服務(抖音直播)、協作工具(騰訊文檔),事件驅動模型能快速響應實時請求;

????????◆?API 服務:構建 RESTful API 或 GraphQL API,為前端應用(如 React、Vue)提供數據接口;

????????◆?單頁應用(SPA)后端:處理前端路由、數據交互等,簡化全棧開發流程;

????????◆?微服務架構:作為微服務節點,輕量、高效的特性有助于構建可擴展的分布式系統;

????????◆?命令行工具:如 Webpack、Gulp 等前端構建工具,均基于 Node.js 開發。

5、生態系統

????????Node.js 的生態系統極為豐富,關鍵組件包括:

????????框架:

? ? ? ? ◆?Express.js:極簡 Web 框架,簡化路由、中間件等開發流程(如 app.get('/api/user', (req, res) => res.send('user data')));

????????◆?Koa.js:Express 團隊開發的下一代框架,采用 async/await 語法,更簡潔、靈活;

????????工具:

????????◆?Socket.io:實現實時雙向通信(支持 WebSocket),適用于實時聊天、多人游戲;

????????◆?Mongoose:MongoDB 的對象文檔模型(ODM)庫,簡化數據庫操作;

????????◆?數據庫:MongoDB(NoSQL)、MySQL(關系型)等,均與 Node.js 配合良好。

6、總結

????????Node.js 的出現讓 JavaScript 從“瀏覽器端語言”升級為“全棧語言”,其核心優勢在于非阻塞 I/O 和事件驅動模型,使其在 I/O 密集型應用中表現出色。通過龐大的生態系統,開發者可以快速構建高效、可擴展的應用,大幅降低全棧開發的學習成本。

????????無論是前端開發者想了解前后端交互,還是后端開發者想嘗試輕量級服務,Node.js 都是值得學習的重要技術。💡

二、Nodejs下載安裝

1、Nodejs下載

官網下載地址:Node.js — Download Node.js?

中文網下載地址:下載 Node.js

或者直接輸入Node.js官網IP地址(如https://nodejs.org/dist/latest-v16.x/)嘗試訪問。??

2、Nodejs安裝

◆ 雙擊壓縮包出現安裝界面點擊【Next】

◆ 點擊【Change...】后修改安裝路徑(建議放在C盤外的其他盤中)后點擊【Next】

◆ 該頁面可根據自身需求進行選擇,沒有特殊需求選擇默認設置安裝,直接點擊【next】

◆ 直接點擊【Next】

◆ 點擊【Install】

◆ 安裝完成,點擊【Finish】

3、安裝驗證

????????測試是否安裝成功,使用【 win+R】 鍵,輸入cmd,打開命令窗口

? ? ? ? 窗口內輸入:

node -v   //顯示node.js版本
npm -v    //顯示npm版本

? ? ? ? 給出結果如下則安裝成功:

三、Nodejs環境配置

? ? ? ? 1、打開安裝的目錄,在安裝目錄下新建兩個文件夾【node_global】和【node_cache】

? ? ? ? 2、再次打開cmd命令窗口,輸入npm config set prefix “你的路徑\node_global” 以及? npm config set cache “你的路徑\node_cache” (可直接復制剛剛新建的空文件夾目錄,執行時候建議使用管理員權限打開CMD,否則有可能會提示權限不夠報錯

npm config set prefix “你的路徑\node_global”
npm config set cache “你的路徑\node_cache”

? ? ? ? 3、設置環境變量,打開【系統屬性】-【高級】-【環境變量】,在系統變量中新建變量名及變量值(?用來告訴系統, 下載的模塊或者包都在這里了),如下是以個人安裝路徑為例子:

變量名:NODE_PATH

變量值:D:\Path\nodejs\node_global\node_modules

????????配置保存后在 node_global 文件中會多出一個 node_modules 文件,如果輸入變量值后 node_global 文件中沒有自動創建 node_modules 文件夾,可以手動在node_gobal 中創建一個 node_modules 文件夾,然后把 node_modules 文件夾的路徑地址復制并粘貼到變量值。????????? ?

? ? ? ? 4、編輯?用戶變量?中的?PATH,將默認的C盤下的?C:\Users\21639\AppData\Roaming\npm 修改為 node_global 的路徑,然后點擊確定

? ? ? ? 5、在?系統變量?中選擇?PATH?點擊編輯,添加【NODE_PATH】,然后一直點擊確定?

? ? ? ? 6、配置完成后,全局安裝一個最常用的 express 模塊進行測試

????????如果上述操作過后安裝express失敗,可以對nodejs文件中的 node_global 以及 node_cache 文件夾權限進行修改,鼠標右擊的文件夾,點擊【屬性】,再點擊【安全】,再點擊【編輯】,將權限都勾上后保存即可,如若還不行就把nodejs整個文件夾權限放開即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919258.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919258.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919258.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

KINGBASE集群日常維護管理命令總結

查看集群的狀態 [kingbasenode1 bin]$ repmgr cluster show查看守護集群狀態 [kingbasenode1 bin]$ repmgr service status查看集群的事件 [kingbasenode1 etc]$ repmgr cluster event查看集群流復制狀態 esrep#select usename,application_name,client_addr,sync_state,state,…

GoLand 調參高手都在用的配置!續集:WebStorm 飛升后,Go 開發 IDE 性能炸裂的秘密

“為什么別人的 GoLand 運行 Go 項目絲滑流暢,而你的卻頻繁卡頓、編譯轉圈?秘密就藏在這個 goland64.exe.vmoptions文件里!作為 IDEA/PyCharm/WebStorm 調優系列的續集,我把我壓箱底的 ?GoLand 性能調優參數表? 分享出來—>&…

48Days-Day19 | ISBN號,kotori和迷宮,矩陣最長遞增路徑

ISBN號 ISBN號碼_牛客題霸_牛客網 算法原理 模擬,根據題意模擬就可以了,注意一下余數為10的時候要特別判斷一下是不是X就行了 代碼 import java.util.Scanner;// 注意類名必須為 Main, 不要有任何 package xxx 信息 public class Main {public stat…

Java 泛型類型擦除

📖 概述 本文檔詳細解釋了 Flink 中 TypeInformation 的作用、原理和使用方法,幫助理解為什么 Flink 需要顯式的類型信息。 🎯 核心問題:Java 泛型類型擦除 什么是類型擦除? Java 在編譯時會將泛型信息擦除&#xff0c…

從“寫代碼”到“定義需求”:AI編程工具如何重構軟件開發的核心流程?

從“寫代碼”到“定義需求”:AI編程工具如何重構軟件開發的核心流程? 軟件開發的核心流程正在經歷一場靜默革命。十年前,開發者的日常被“寫代碼”填滿——從變量定義到邏輯實現,每行代碼都需要手動敲擊;而今天&#x…

一顆TTS語音芯片給產品增加智能語音播報能力

?一顆TTS語音芯片給產品增加智能語音播報能力傳統語音播報芯片可以設置一些固定的語音片段或者內容,但是對于現在各種創新產品層出不窮的時代,傳統的語音播報芯片能力似乎有點不夠用了。而TTS語音合成芯片,正在逐漸登上舞臺中央。TTS語音合成…

[免費]基于Python的影視數據可視化分析系統(Flask+echarts)【論文+源碼+SQL腳本】

大家好,我是python222_小鋒老師,看到一個不錯的基于Python的影視數據可視化分析系統(Flaskecharts),分享下哈。 項目視頻演示 【免費】基于Python的愛奇藝影視電影數據可視化分析系統(Flaskecharts) Python畢業設計_嗶哩嗶哩_bilibili 系統…

Three.js 材質系統深度解析

簡介 Three.js 是一個功能強大的開源 3D 圖形庫,廣泛應用于 Web 端的 3D 可視化開發。其材質系統是 Three.js 的核心組成部分之一,負責定義 3D 對象的表面外觀和渲染效果。從簡單的顏色填充到復雜的動態效果,材質系統為開發者提供了高度靈活…

FP16(半精度)和FP32(單精度)

FP16(Half-Precision Floating Point,半精度浮點數)是一種使用16位二進制數表示浮點數值的數據格式,在深度學習、圖形渲染和高性能計算中廣泛應用。其核心定義、技術特性與應用價值如下:一、FP16的核心定義與結構二進制…

基于Vue + Node能源采購系統的設計與實現/基于express的能源管理系統#node.js

基于Vue Node能源采購系統的設計與實現/基于express的能源管理系統#node.js

代碼管理系統簡介與部署

目錄版本控制1:版本控制概念2:版本控制的功能(1)檢入檢出控制(2)分支和合井(3)歷史記錄3:版本控制的流程(1)創建配置項。(2&#xff0…

Pandas數據結構詳解Series與DataFrame

Pandas數據結構詳解:Series與DataFrame實戰指南 前言 Pandas是Python數據分析的核心庫,其強大的數據處理能力主要基于兩種核心數據結構:Series和DataFrame。本文將深入解析這兩種數據結構的概念、創建方式、常用屬性和方法,并通…

TensorRT-LLM.V1.1.0rc0:在無 GitHub 訪問權限的服務器上編譯 TensorRT-LLM 的完整實踐

一、TensorRT-LLM有三種安裝方式,從簡單到難 1.NGC上的預構建發布容器進行部署,見《tensorrt-llm0.20.0離線部署DeepSeek-R1-Distill-Qwen-32B》。 2.通過pip進行部署。 3.從源頭構建再部署。 在實際開發中,我們常常面臨這樣的場景:本地筆記…

完整、可落地的 Elasticsearch 拼音補全配置模板 設計方案

在中文搜索場景中,用戶經常使用拼音輸入(如 “iPhone”、“pingguo”)來搜索中文內容(如“蘋果手機”)。為了提升用戶體驗,Elasticsearch 可通過 拼音分詞器 Completion Suggester 實現 拼音補全&#xff…

Redis面試精講 Day 23:Redis與數據庫數據一致性保障

【Redis面試精講 Day 23】Redis與數據庫數據一致性保障 在“Redis面試精講”系列的第23天,我們將深入探討Redis與數據庫數據一致性保障這一在高并發分布式系統中極為關鍵的技術難題。該主題是面試中的高頻壓軸題,常出現在中高級后端開發、架構師崗位的考…

HTML <link rel=“preload“>:提前加載關鍵資源的性能優化利器

在網頁性能優化中&#xff0c;“資源加載時機”是影響用戶體驗的關鍵因素——一個延遲加載的核心CSS可能導致頁面“閃白”&#xff0c;一段未及時加載的關鍵JS可能讓交互按鈕失效。傳統的資源加載方式&#xff08;如<link>加載CSS、<script>加載JS&#xff09;依賴…

WPF加載記憶上次圖像

問題點使用MVVM先viewModel構造函數然后才Loaded事件,但Loaded事情時halcon控件沒有加載完畢。Window_ContentRendered事件中halcon控件才有了句柄。解決問題1.viewModel函數中調用相機的類獲取相機名(在這里是為了MVVM中以后可以做其它的事情如識別二維碼)2.在Window_ContentR…

AT89C52單片機介紹

目錄 1AT89C52原理圖及結構框圖 1.1 原理圖 1.2 AT89C52 結構框圖 1.2.1 8 位 CPU 1.2.2 存儲器 1.2.3 I/O 端口 1.2.4 定時器 / 計數器 1.2.5 串行通信接口 1.2.6 中斷系統 1.2.7 時鐘與復位 1.2.8 總線結構 1.2.9 特殊功能寄存器區 2 AT89C52引腳介紹(PDIP) …

聯網車輛功能安全和網絡安全的挑戰與當前解決方案

摘要在過去的二十年里&#xff0c;數字化重塑了我們的日常生活&#xff0c;汽車行業也身處這一變革之中。如今的車輛正變得日益智能且聯網&#xff0c;具備了更多的安全和便捷功能&#xff08;如自動緊急制動、自適應巡航控制&#xff09;。下一代車輛將實現高度自動化乃至 5 級…

網絡安全(Java語言)腳本 匯總(二)

文章目錄目錄遍歷漏洞掃描器源代碼思路一、核心功能二、依賴庫三、核心流程四、關鍵方法五、數據結構六、輸出信息目錄遍歷漏洞掃描器 源代碼 /*** description : 目錄遍歷漏洞掃描器* 注意; 在輸入URL時 要求必須保存 ?page 的末尾 才能保證路徑合成的有效性*//*** desc…