GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

软件研发 --- hello world 项目 之 js重生 node.js

Node.js 安装运行完整指南

目录

  1. Node.js 简介
  2. 安装 Node.js
  3. 验证安装
  4. 运行 Hello World 程序
  5. Node.js 程序结构详解
  6. 包管理器 npm
  7. 常见问题解决
  8. 开发工具推荐
  9. 进阶学习建议
  10. 与其他语言对比

Node.js 简介

Node.js 是一个基于 Chrome V8 JavaScript 引擎的 JavaScript 运行时环境。它让 JavaScript 能够在服务器端运行,用于构建高性能的网络应用程序。

Node.js 的特点

  • 事件驱动:基于事件循环的非阻塞 I/O 模型
  • 单线程:主线程是单线程,但通过事件循环实现高并发
  • 跨平台:支持 Windows、macOS、Linux 等操作系统
  • 丰富的生态系统:拥有世界上最大的开源库生态系统 npm
  • 高性能:V8 引擎提供出色的执行性能
  • 实时应用:特别适合构建实时 Web 应用

安装 Node.js

方法一:官方网站下载(推荐)

  1. 访问官方网站

    • 打开浏览器,访问:https://nodejs.org/
    • 选择 LTS(长期支持)版本,更加稳定
  2. 下载安装包

    • Windows:下载 .msi 安装包
    • macOS:下载 .pkg 安装包
    • Linux:下载二进制包或使用包管理器
  3. 安装过程

    • Windows/macOS:双击安装包,按照向导完成安装
    • 安装过程中会自动配置环境变量
    • npm(Node Package Manager)会一同安装

方法二:使用包管理器安装

Windows(使用 Chocolatey)

# 安装 Chocolatey(如果未安装)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# 使用 Chocolatey 安装 Node.js
choco install nodejs

macOS(使用 Homebrew)

# 安装 Homebrew(如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 使用 Homebrew 安装 Node.js
brew install node

Linux(Ubuntu/Debian)

# 更新包列表
sudo apt update

# 安装 Node.js 和 npm
sudo apt install nodejs npm

# 或者安装最新版本
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

方法三:使用版本管理器(推荐开发者)

安装 nvm(Node Version Manager)

Windows(nvm-windows):

  1. 下载:https://github.com/coreybutler/nvm-windows/releases
  2. 安装 nvm-setup.zip

macOS/Linux:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

使用 nvm 安装 Node.js

# 查看可用版本
nvm list available  # Windows
nvm ls-remote        # macOS/Linux

# 安装最新 LTS 版本
nvm install --lts

# 使用特定版本
nvm use 18.17.0

# 设置默认版本
nvm alias default 18.17.0

验证安装

安装完成后,打开命令行工具验证安装:

# 检查 Node.js 版本
node --version
# 或者
node -v

# 检查 npm 版本
npm --version
# 或者
npm -v

预期输出示例:

C:\> node --version
v18.17.0

C:\> npm --version
9.6.7

运行 Hello World 程序

hello.js
//
Node.js Hello World 程序 // Node.js是一个基于Chrome V8引擎的JavaScript运行时环境 // 它允许JavaScript在服务器端运行,用于构建高性能的网络应用程序 // 在Node.js中,console是一个全局对象,用于输出信息到控制台 // console.log()方法用于输出文本,类似于浏览器中的console.log() console.log('Hello, World!'); // 输出Node.js相关信息 console.log('欢迎使用Node.js!'); console.log('Node.js版本:', process.version); console.log('当前平台:', process.platform); // process是Node.js的全局对象,包含当前进程的信息 // process.version 显示当前Node.js版本 // process.platform 显示当前操作系统平台 // 演示Node.js的一些基本特性 // 1. 变量声明和使用 const message = 'Node.js让JavaScript运行在服务器端!'; let currentTime = new Date(); var author = 'Node.js开发者'; console.log('\n=== 变量演示 ==='); console.log('消息:', message); console.log('当前时间:', currentTime.toLocaleString()); console.log('作者:', author); // 2. 函数定义和调用 function greetUser(name) { return `你好, ${name}! 欢迎学习Node.js!`; } // 箭头函数(ES6特性) const calculateSum = (a, b) => { return a + b; }; console.log('\n=== 函数演示 ==='); console.log(greetUser('开发者')); console.log('计算结果 5 + 3 =', calculateSum(5, 3)); // 3. 数组和对象操作 const technologies = ['JavaScript', 'Node.js', 'Express.js', 'MongoDB']; const projectInfo = { name: 'Hello World项目', language: 'JavaScript', runtime: 'Node.js', difficulty: '初级' }; console.log('\n=== 数据结构演示 ==='); console.log('技术栈:', technologies.join(', ')); console.log('项目信息:', JSON.stringify(projectInfo, null, 2)); // 4. 异步编程示例(使用setTimeout) console.log('\n=== 异步编程演示 ==='); console.log('开始异步操作...'); setTimeout(() => { console.log('异步操作完成!这是在1秒后执行的代码。'); }, 1000); // 5. 模块系统演示(内置模块) const os = require('os'); // 引入操作系统模块 const path = require('path'); // 引入路径处理模块 console.log('\n=== 模块系统演示 ==='); console.log('操作系统类型:', os.type()); console.log('系统架构:', os.arch()); console.log('当前文件路径:', __filename); console.log('当前目录:', __dirname); console.log('文件扩展名:', path.extname(__filename)); // 程序结束提示 console.log('\n=== 程序执行完成 ==='); console.log('恭喜!你已经成功运行了第一个Node.js程序!'); // 注意:在Node.js中,程序会在所有同步代码执行完毕后自动退出 // 除非有异步操作(如setTimeout、服务器监听等)保持程序运行

 

方法一:直接运行

  1. 打开命令行

    • Windows:按 Win + R,输入 cmd 或 powershell
    • macOS:按 Cmd + Space,搜索 "Terminal"
    • Linux:按 Ctrl + Alt + T
  2. 导航到文件目录

    cd "C:\Users\21558\Documents\WeChat Files\wxid_nwercn4twf1c22\FileStorage\File\2025-06\cxx"
    
  3. 运行程序

    node hello.js
    

方法二:使用 npm scripts

  1. 创建 package.json 文件

    npm init -y
    
  2. 编辑 package.json,添加脚本

    {
      "name": "hello-world",
      "version": "1.0.0",
      "description": "Node.js Hello World 示例",
      "main": "hello.js",
      "scripts": {
        "start": "node hello.js",
        "dev": "node hello.js"
      },
      "keywords": ["nodejs", "hello-world"],
      "author": "你的名字",
      "license": "MIT"
    }
    
  3. 使用 npm 运行

    npm start
    # 或者
    npm run dev
    

Node.js 程序结构详解

基本语法

// 1. 注释
// 单行注释
/* 多行注释 */

// 2. 变量声明
const PI = 3.14159;     // 常量,不可修改
let userName = 'Alice'; // 块级作用域变量
var age = 25;           // 函数作用域变量(不推荐)

// 3. 数据类型
let number = 42;                    // 数字
let string = 'Hello World';         // 字符串
let boolean = true;                 // 布尔值
let array = [1, 2, 3];             // 数组
let object = { name: 'John' };      // 对象
let nullValue = null;               // 空值
let undefinedValue = undefined;     // 未定义

// 4. 函数
function greet(name) {
    return `Hello, ${name}!`;
}

// 箭头函数(ES6)
const add = (a, b) => a + b;

// 5. 模块系统
const fs = require('fs');           // 引入内置模块
const express = require('express'); // 引入第三方模块

内置对象和模块

// 全局对象
console.log('输出信息');
process.exit(0);                    // 退出程序
__filename;                         // 当前文件路径
__dirname;                          // 当前目录路径

// 常用内置模块
const fs = require('fs');           // 文件系统
const path = require('path');       // 路径处理
const http = require('http');       // HTTP 服务器
const url = require('url');         // URL 解析
const os = require('os');           // 操作系统信息

异步编程

// 1. 回调函数
setTimeout(() => {
    console.log('1秒后执行');
}, 1000);

// 2. Promise
const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('操作成功');
    }, 1000);
});

promise.then(result => {
    console.log(result);
});

// 3. async/await(ES2017)
async function fetchData() {
    try {
        const result = await promise;
        console.log(result);
    } catch (error) {
        console.error(error);
    }
}

包管理器 npm

npm 基本命令

# 初始化项目
npm init                    # 交互式创建 package.json
npm init -y                 # 使用默认设置创建

# 安装包
npm install express         # 安装到 dependencies
npm install --save express  # 同上(默认行为)
npm install --save-dev jest # 安装到 devDependencies
npm install -g nodemon      # 全局安装

# 卸载包
npm uninstall express       # 卸载包
npm uninstall -g nodemon    # 卸载全局包

# 更新包
npm update                  # 更新所有包
npm update express          # 更新特定包

# 查看信息
npm list                    # 查看已安装的包
npm list -g                 # 查看全局安装的包
npm info express            # 查看包信息

package.json 详解

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "我的 Node.js 应用",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "test": "jest",
    "build": "webpack"
  },
  "dependencies": {
    "express": "^4.18.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.0",
    "jest": "^29.0.0"
  },
  "keywords": ["nodejs", "express"],
  "author": "你的名字",
  "license": "MIT"
}

常用开发工具包

# 开发工具
npm install -g nodemon      # 自动重启开发服务器
npm install -g pm2          # 生产环境进程管理
npm install -g typescript   # TypeScript 编译器

# Web 框架
npm install express         # 轻量级 Web 框架
npm install koa             # 下一代 Web 框架
npm install fastify         # 高性能 Web 框架

# 数据库
npm install mongoose        # MongoDB ODM
npm install sequelize       # SQL ORM
npm install redis           # Redis 客户端

# 工具库
npm install lodash          # 实用工具库
npm install moment          # 日期处理
npm install axios           # HTTP 客户端
npm install dotenv          # 环境变量管理

常见问题解决

1. 权限问题

问题:npm 安装包时提示权限不足

解决方案

# Windows(以管理员身份运行命令行)
# macOS/Linux
sudo npm install -g package-name

# 或者配置 npm 全局目录
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH

2. 网络问题

问题:npm 安装速度慢或失败

解决方案

# 使用淘宝镜像
npm config set registry https://registry.npmmirror.com

# 或者使用 cnpm
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm install express

# 恢复官方镜像
npm config set registry https://registry.npmjs.org

3. 版本冲突

问题:不同项目需要不同 Node.js 版本

解决方案:使用 nvm 管理版本

# 安装多个版本
nvm install 16.20.0
nvm install 18.17.0

# 切换版本
nvm use 16.20.0

# 查看当前版本
nvm current

4. 模块找不到

问题Error: Cannot find module 'xxx'

解决方案

# 重新安装依赖
rm -rf node_modules package-lock.json
npm install

# 或者清除 npm 缓存
npm cache clean --force

5. 端口占用

问题Error: listen EADDRINUSE :::3000

解决方案

# Windows
netstat -ano | findstr :3000
taskkill /PID <PID> /F

# macOS/Linux
lsof -ti:3000 | xargs kill -9

开发工具推荐

1. 代码编辑器

Visual Studio Code(推荐)

  • 免费、开源、功能强大
  • 丰富的 Node.js 扩展
  • 内置调试器和终端
  • 智能代码补全

推荐扩展:

  • Node.js Extension Pack
  • ESLint
  • Prettier
  • Auto Rename Tag
  • GitLens

WebStorm

  • JetBrains 出品的专业 IDE
  • 强大的调试和重构功能
  • 内置版本控制
  • 付费软件

Sublime Text

  • 轻量级、启动快速
  • 丰富的插件生态
  • 多光标编辑

2. 调试工具

# 使用 Node.js 内置调试器
node --inspect hello.js

# 使用 Chrome DevTools
# 在 Chrome 中访问:chrome://inspect

# 使用 VS Code 调试
# 创建 .vscode/launch.json 配置文件

3. 开发服务器

# nodemon - 自动重启
npm install -g nodemon
nodemon hello.js

# pm2 - 生产环境进程管理
npm install -g pm2
pm2 start hello.js
pm2 list
pm2 stop hello.js

进阶学习建议

1. 学习路径

基础阶段:

  1. JavaScript 基础语法
  2. Node.js 核心模块
  3. npm 包管理
  4. 异步编程(回调、Promise、async/await)

进阶阶段:

  1. Express.js 框架
  2. 数据库操作(MongoDB、MySQL)
  3. RESTful API 设计
  4. 身份验证和授权

高级阶段:

  1. 微服务架构
  2. 性能优化
  3. 安全最佳实践
  4. 部署和运维

2. 实践项目

初级项目:

  • 命令行工具
  • 文件处理脚本
  • 简单的 HTTP 服务器

中级项目:

  • RESTful API
  • 实时聊天应用
  • 博客系统

高级项目:

  • 电商平台
  • 社交网络
  • 微服务架构应用

3. 学习资源

官方文档:

在线教程:

  • Node.js 教程 - 菜鸟教程
  • freeCodeCamp Node.js 课程
  • Node.js 实战 - 慕课网

书籍推荐:

  • 《Node.js 实战》
  • 《深入浅出 Node.js》
  • 《Node.js 设计模式》

与其他语言对比

Node.js vs Java

特性Node.jsJava
语言 JavaScript Java
运行时 V8 引擎 JVM
并发模型 事件循环 多线程
开发速度 快速 中等
性能 高(I/O密集) 高(CPU密集)
生态系统 npm(丰富) Maven/Gradle
学习曲线 平缓 陡峭

Node.js vs Python

特性Node.jsPython
语法 JavaScript Python
执行方式 编译+解释 解释执行
异步编程 原生支持 需要库支持
Web开发 Express等 Django/Flask
数据科学 有限 强大
实时应用 优秀 一般

Node.js vs Go

特性Node.jsGo
类型系统 动态类型 静态类型
并发 事件循环 Goroutines
编译 运行时编译 编译型
部署 需要运行时 单文件部署
开发效率 中等
性能 非常高

Node.js vs C#

特性Node.jsC#
平台 跨平台 跨平台(.NET Core)
类型系统 动态类型 静态类型
生态系统 npm NuGet
企业支持 社区驱动 Microsoft支持
开发工具 多样化 Visual Studio
学习资源 丰富 丰富

总结

Node.js 是一个强大的 JavaScript 运行时环境,特别适合构建:

  • 实时应用:聊天应用、在线游戏、协作工具
  • API 服务:RESTful API、GraphQL 服务
  • 微服务:轻量级、高性能的微服务
  • 工具和脚本:构建工具、自动化脚本
  • 单页应用后端:为 React、Vue、Angular 提供后端支持

Node.js 的优势

  1. 统一的开发语言:前后端都使用 JavaScript
  2. 高性能:事件驱动、非阻塞 I/O
  3. 丰富的生态系统:npm 拥有最大的开源库集合
  4. 快速开发:简洁的语法和丰富的工具
  5. 活跃的社区:持续的更新和支持
  6. 跨平台:支持所有主流操作系统

完整流程总结

  1. 安装 Node.js:从官网下载或使用包管理器
  2. 验证安装node --version 和 npm --version
  3. 创建项目:编写 .js 文件
  4. 运行程序node filename.js
  5. 包管理:使用 npm 安装和管理依赖
  6. 开发调试:使用合适的编辑器和调试工具
  7. 部署上线:使用 pm2 等工具进行生产环境部署

通过本指南,你应该能够成功安装 Node.js 并运行你的第一个程序。继续学习和实践,你将能够构建出强大的 Node.js 应用程序!

posted on 2025-06-16 07:20  GKLBB  阅读(44)  评论(0)    收藏  举报