1. Node.js 概述与环境搭建

大家好,欢迎来到《Node.js 后端接口开发与部署实战》的第一章。

说实话,每次带新人入门,我都会先问一个问题:你为什么要学 Node.js? 如果只是为了跟风,那可能走不远。但如果你是想用 JavaScript 一把梭,搞定前端 + 后端,那 Node.js 绝对是你的不二之选。

Node.js 是什么?

Node.js 不是一门新语言,它是一个 JavaScript 运行时环境。说白了,就是让 JavaScript 能在服务器上跑起来的东西。

以前 JavaScript 只能在浏览器里玩,有了 Node.js 之后,它就能读写文件、操作数据库、处理网络请求了。嗯,这里要注意:Node.js 底层用的是 Chrome V8 引擎,所以它的执行速度非常快。

核心要点:

  • Node.js 不是框架,不是语言,是运行时环境
  • 基于 Chrome V8 引擎,性能强悍
  • 采用事件驱动、非阻塞 I/O 模型
  • 适合高并发、I/O 密集型场景

为什么选择 Node.js?

我在项目中遇到过不少团队,从 Java 或 PHP 转到 Node.js。原因其实很直接:

  1. 全栈 JavaScript:前后端用同一门语言,减少上下文切换成本。你想想看,前端工程师稍微学一下就能写接口,多香。
  2. 高并发处理能力:Node.js 的异步非阻塞模型,让它能轻松处理成千上万的并发连接。我记得有个项目,用 Java 写的接口扛不住 5000 并发,换成 Node.js 后,同样的机器配置,直接飙到 2 万。
  3. 丰富的生态:npm 上有超过 200 万个包,你要什么功能基本都能找到现成的。
  4. 社区活跃:遇到问题,Stack Overflow 上一搜一大把解决方案。

个人建议:如果你的项目是 CPU 密集型(比如视频转码、图像处理),Node.js 可能不是最佳选择。但如果是 API 接口、实时应用、微服务,Node.js 绝对值得一试。

安装 Node.js(nvm 管理多版本)

说到安装,我个人习惯用 nvm(Node Version Manager) 来管理 Node.js 版本。为什么?因为不同项目可能依赖不同版本的 Node.js,你总不能每次都卸载重装吧?

安装 nvm

先安装 nvm,然后通过它来安装 Node.js。具体步骤如下:

macOS / Linux 用户:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

或者用 wget:

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Windows 用户:

去 GitHub 下载 nvm-windows 的安装包:https://github.com/coreybutler/nvm-windows/releases

安装完成后,重启终端,验证一下:

nvm --version

安装 Node.js

用 nvm 安装 Node.js 非常简单:

# 查看可用的 Node.js 版本
nvm ls-remote

# 安装最新稳定版
nvm install 20.11.0

# 安装后自动切换到该版本
nvm use 20.11.0

# 查看已安装的版本
nvm ls

避坑指南:我曾经在 Windows 上直接下载官方安装包,结果项目需要切换到 Node 16,而我已经装了 Node 20,卸载重装折腾了半天。后来老老实实用 nvm,再也没为版本问题头疼过。

验证安装

安装完成后,检查一下:

node --version
# 输出:v20.11.0

npm --version
# 输出:10.2.4

看到版本号,说明安装成功了。

第一个 Hello World 程序

好了,环境搭好了,我们来写第一个程序。别整那些花里胡哨的,就从最经典的 Hello World 开始。

创建一个文件 hello.js

// hello.js
console.log('Hello, Node.js!');

然后在终端运行:

node hello.js

你会看到输出:

Hello, Node.js!

嗯,就这么简单。但光打印一句话太没意思了,我们来点实际的——创建一个简单的 HTTP 服务器:

// server.js
const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain; charset=utf-8');
  res.end('Hello, Node.js! 这是我的第一个服务器。');
});

server.listen(3000, () => {
  console.log('服务器已启动,访问地址:http://localhost:3000');
});

运行:

node server.js

打开浏览器,访问 http://localhost:3000,你会看到页面显示「Hello, Node.js! 这是我的第一个服务器。」

小提示:如果你在终端里看到端口被占用的错误,换个端口试试,比如 3001、8080。我在项目中经常遇到端口冲突,一般用 lsof -i :3000 查一下谁在用,然后杀掉进程或者换端口。

本章小结

这一章我们搞定了三件事:

  • 明白了 Node.js 是什么——一个让 JavaScript 跑在服务器上的运行时
  • 知道了为什么选 Node.js——高并发、全栈、生态好
  • 用 nvm 装好了 Node.js,并写了第一个 Hello World 程序

下一章,我们会深入 Node.js 的模块系统,看看 require 和 import 到底有什么区别。到时候见!


公众号:蓝海资料掘金营,微信deep3321