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