ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Nodejs是什么、作用、安装、第一个程序【Node.js-入门详细讲解】

Nodejs是什么、作用、安装、第一个程序【Node.js-入门详细讲解】 目录Node.js 快速入门一、Node.js 是什么二、JavaScript 为什么需要 Runtime三、Node.js 和浏览器是什么关系四、Node.js 使用什么执行 JavaScript五、Node.js 能干什么开发后端接口六、Node.js 可以操作文件七、Node.js 可以创建服务器八、Node.js 可以操作数据库九、Node.js 可以开发命令行工具十、Node.js 可以做脚本十一、为什么前端开发者应该学习 Node.js十二、Node.js 和 JavaScript 是什么关系十三、Node.js 和 Chrome 是什么关系十四、浏览器和 Node.js 最大的区别浏览器Node.js十五、Node.js 的安装十六、先检查是否已经安装 Node.js十七、检查 npm十八、推荐使用 nvm 管理 Node.js十九、LTS 是什么二十、使用 nvm 安装 Node.js二十一、使用 nvm 安装 Node.js LTS二十二、安装成功后的检查二十三、你的 Mac 推荐环境二十四、Node.js 第一个程序二十五、Node.js 最重要的几个概念V8Node.jsfspathprocesshttpEvent Loop二十六、Node.js 学习顺序二十七、最终理解Node.js 快速入门面向前端开发者 / JavaScript 初学者目标快速理解 Node.js 是什么、能做什么、为什么要学以及如何在 Mac 上安装和运行第一个 Node.js 程序。一、Node.js 是什么先记住一句话Node.js 是一个可以让 JavaScript 在浏览器之外运行的 JavaScript RuntimeJavaScript 运行时。平时我们写 JavaScript最常见的运行环境是浏览器JavaScript ↓ Browser浏览器 ↓ Chrome / Safari / Firefox ↓ JavaScript Engine ↓ 执行 JavaScript例如console.log(Hello JavaScript)我们可以直接在 Chrome 的控制台中运行。二、JavaScript 为什么需要 RuntimeJavaScript 是一门编程语言。但是JavaScript 代码本身并不能凭空运行需要一个运行环境。这个运行环境就叫Runtime运行时例如JavaScript ↓ 需要运行环境 ↓ ┌───────────────┬───────────────┐ ↓ ↓ Browser Node.js 浏览器运行时 服务端运行时所以Browser 是一种 JavaScript Runtime Node.js 也是一种 JavaScript Runtime三、Node.js 和浏览器是什么关系可以简单理解成JavaScript │ ┌──────────┴──────────┐ ↓ ↓ Browser Node.js ↓ ↓ 浏览器环境 服务端环境浏览器主要负责HTML CSS 页面 DOM(Document Object Model 文档对象模型-操作网页) 用户交互Node.js 则可以负责服务器 接口 文件 数据库 网络 命令行工具 脚本四、Node.js 使用什么执行 JavaScriptNode.js 使用V8 JavaScript EngineV8 JavaScript 引擎V8 是 Google 开发的 JavaScript 引擎。Chrome 也使用 V8。因此可以粗略理解成Chrome ↓ V8 ↓ 执行 JavaScript而 Node.jsNode.js ↓ V8 ↓ 执行 JavaScript但是要注意V8 不等于 Node.js。V8 主要负责执行 JavaScript。Node.js 在此基础上还提供了大量服务端能力。例如Node.js │ ├── V8 │ ├── 文件系统 ├── HTTP ├── 网络 ├── 进程 ├── Buffer缓冲区-用来处理二进制数据【数据怎么存】 ├── Stream流-解决数据太大了不能一次性全部读进内存的问题【大量数据怎么一点一点处理】 └── 其他 Node API五、Node.js 能干什么Node.js 最大的特点是让 JavaScript 不再只能运行在浏览器里。以前JavaScript ↓ 浏览器 ↓ 网页有了 Node.jsJavaScript ↓ Node.js ↓ 服务器 / 本地电脑 / 命令行因此 Node.js 可以做很多事情。开发后端接口例如前端 Vue ↓ HTTP 请求 ↓ Node.js ↓ 数据库 ↓ 返回数据例如前端fetch(/api/users)Node.js 后端GET /api/users ↓ Node.js ↓ 查询数据库 ↓ 返回用户数据这也是 Node.js 最常见的用途之一。六、Node.js 可以操作文件浏览器里的 JavaScript 不能随便操作电脑上的任意文件。但是 Node.js 可以。例如importfsfromnode:fs/promisesconstcontentawaitfs.readFile(./test.txt,utf-8)console.log(content)这里的fs是File System文件系统Node.js 可以使用它读取文件 写入文件 创建文件夹 删除文件 移动文件七、Node.js 可以创建服务器例如importhttpfromnode:httpconstserverhttp.createServer((req,res){res.end(Hello Node.js)// 向客户端返回 Hello Node.js并结束这次响应。})server.listen(3000)// 让这个服务器监听 3000 端口运行后http://localhost:3000浏览器访问这个地址就可以看到Hello Node.js整个过程浏览器 ↓ http://localhost:3000 ↓ HTTP 请求 ↓ Node.js Server ↓ HTTP 响应 ↓ 浏览器这就是一个最简单的后端服务器。八、Node.js 可以操作数据库Node.js 可以连接MySQL PostgreSQL MongoDB Redis例如Vue ↓ Node.js ↓ PostgreSQL所以可以使用 Node.js 开发完整的后端服务。九、Node.js 可以开发命令行工具例如nodeapp.js很多我们平时使用的前端工具其实都运行在 Node.js 环境中。例如Vite前端构建工具 Webpack前端模块打包工具 ESLint代码质量检查工具 Prettier代码格式化工具 pnpmNode.js包管理器 npmNode.js官方生态常用的包管理器所以你作为前端开发者其实早就在间接使用 Node.js。例如pnpminstall背后就涉及 Node.js 运行环境。十、Node.js 可以做脚本例如批量修改文件 批量生成代码 处理 JSON 处理 Excel 自动化任务 构建项目都可以使用 Node.js。例如console.log(开始执行任务)console.log(处理文件...)console.log(处理完成)然后nodescript.js就可以运行。十一、为什么前端开发者应该学习 Node.js因为你现在作为前端开发者可能主要是Vue ↓ 页面 ↓ Axios / Fetch ↓ 后端 API例如Vue ↓ GET /api/users ↓ Java / Go / Node.js ↓ 数据库学习 Node.js 后Vue ↓ Node.js ↓ 数据库你就可以自己完成前端 后端 数据库也就是Full Stack全栈十二、Node.js 和 JavaScript 是什么关系不要混淆JavaScript ≠ Node.jsJavaScript 是编程语言Node.js 是运行 JavaScript 的环境可以类比Java ↓ JVM类似地JavaScript ↓ Runtime ↓ Node.js当然这只是帮助理解的类比两者底层实现并不完全相同。十三、Node.js 和 Chrome 是什么关系Chrome 是Browser浏览器Node.js 是JavaScript Runtime可以这样理解JavaScript │ ┌────────────┴────────────┐ ↓ ↓ Browser Node.js ↓ ↓ Chrome 服务端环境 ↓ V8实际上 Chrome 和 Node.js 都使用 V8但两者提供的环境不同。十四、浏览器和 Node.js 最大的区别浏览器主要提供DOM Window localStorage Fetch Cookie History Location例如document.querySelector(#app)localStorage.setItem(token,123)fetch(/api/users)这些都是浏览器提供的 Web API。Node.js主要提供fs path process http stream crypto例如importfsfromnode:fs/promises可以操作文件。所以Browser │ ├── DOM ├── Window ├── localStorage └── Fetch Node.js │ ├── fs ├── path ├── process └── HTTP十五、Node.js 的安装Mac 按Command Space搜索Terminal打开终端。# 1. 安装 nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash # 2. 重新加载 Shell source ~/.zshrc # 3. 检查 nvm nvm -v # 4. 安装 Node.js nvm install 24 # 5. 使用 Node.js 24 nvm use 24 # 6. 设置默认版本 nvm alias default 24 # 7. 检查 Node.js node -v # 8. 检查 npm npm -v # 9. 检查 Node.js 路径 which node十六、先检查是否已经安装 Node.js执行node-v如果看到v24.x.x或者其他版本号v22.x.x v20.x.x说明已经安装 Node.js。失败的安装command not found: node说明当前环境找不到 Node.js。十七、检查 npm执行npm-v如果出现10.x.x或者11.x.x说明 npm 可以正常使用。npm 是Node Package Manager也就是 Node.js 生态中非常重要的包管理工具。十八、推荐使用 nvm 管理 Node.js如果你要长期做 Node.js 开发我非常推荐nvmnvmNode Version Manager中文Node.js 版本管理器。为什么需要它因为不同项目可能需要不同版本的 Node.js。例如项目 A Node 20 项目 B Node 22 项目 C Node 24如果没有版本管理器切换版本会比较麻烦。使用 nvmnvm use20就可以切换到 Node 20。nvm use24就可以切换到 Node 24。十九、LTS 是什么安装 Node.js 时经常会看到LTS CurrentLTSLong Term Support中文长期支持版本简单理解稳定、长期维护、适合生产环境的版本。学习和工作项目通常优先选择LTS而不是一味追求最新 Current 版本。二十、使用 nvm 安装 Node.js如果你的 Mac 没有 nvm可以先安装 nvm。安装完成后重新打开 Terminal。然后检查nvm-v如果出现0.40.x之类的版本号就说明安装成功。二十一、使用 nvm 安装 Node.js LTS例如nvminstall24然后nvm use24设置默认版本nvmaliasdefault24最后检查node-vnpm-v二十二、安装成功后的检查建议执行node-vnpm-vnvm-vwhichnode例如v24.x.x 11.x.x 0.40.x /Users/xxx/.nvm/versions/node/v24.x.x/bin/node说明基本正常。二十三、你的 Mac 推荐环境作为前端开发者推荐Mac │ ├── Homebrew │ ├── nvm │ ├── Node.js LTS │ ├── npm │ ├── pnpm │ ├── Git │ └── VS Code其中nvm ↓ 管理 Node 版本 Node.js ↓ 运行 JavaScript npm / pnpm ↓ 管理依赖包二十四、Node.js 第一个程序创建hello-node └── index.jsindex.jsconsole.log(Hello Node.js)进入目录cdhello-node运行nodeindex.js看到Hello Node.js恭喜。你已经成功运行了第一个 Node.js 程序。二十五、Node.js 最重要的几个概念刚开始不要被大量 API 吓到。先记住Node.js │ ├── Runtime │ ├── V8 │ ├── JavaScript │ ├── Node API │ ├── fs │ ├── path │ ├── process │ ├── http │ └── stream │ └── Event Loop其中V8负责执行 JavaScript。Node.js负责提供 JavaScript 在浏览器之外运行的环境和能力。fs负责文件系统操作。path负责文件路径处理。process负责当前 Node.js 进程相关信息和环境变量。http负责HTTP 客户端和服务器相关能力。Event Loop负责Node.js 异步任务调度的重要机制。二十六、Node.js 学习顺序如果你想快速学习不要一开始乱学。推荐Node.js 是什么 ↓ JavaScript Runtime ↓ V8 ↓ Node CLI ↓ package.json ↓ npm / pnpm ↓ ESM / CommonJS ↓ fs ↓ path ↓ process ↓ Promise / async / await ↓ Event Loop ↓ HTTP ↓ 原生 HTTP Server ↓ Express / Fastify ↓ 数据库 ↓ Redis ↓ NestJS ↓ Docker ↓ 全栈开发如果以后继续往 AI 方向发展Node.js ↓ API ↓ LLM ↓ RAG ↓ Agent ↓ Tool Calling ↓ MCP ↓ AI Workflow二十七、最终理解你可以把整个关系记成JavaScript │ ↓ JavaScript Runtime │ ┌───────────┴───────────┐ ↓ ↓ Browser Node.js │ │ ↓ ↓ Chrome V8 │ │ ↓ ↓ V8 Node APIs │ ┌────────────────┼───────────────┐ ↓ ↓ ↓ fs HTTP process │ │ │ ↓ ↓ ↓ 文件 服务器 环境变量所以最核心的一句话就是JavaScript 是语言V8 是执行 JavaScript 的引擎Browser 和 Node.js 是不同的 JavaScript 运行环境。浏览器主要让 JavaScript 操作网页而 Node.js 让 JavaScript 可以操作服务器、文件、网络、数据库等。对于已经会 Vue/TypeScript 的前端开发者来说学习 Node.js 的目的不是重新学习 JavaScript而是把你原本只会“调用后端 API”的能力逐渐扩展到“自己设计和实现 API”。
返回列表