Node.js新手教程:从零开始学习服务器端JavaScript
大家好,我是开源项目维护者,也是一名前端讲师。在过去的几年里,我写过不少技术文档,也带过很多零基础的同学入门编程。今天我想和大家聊聊 Node.js —— 这个让 JavaScript 不再局限于浏览器的神奇工具。
我当初学的时候,最大的困惑就是:“JavaScript不是只能在网页里跑吗?怎么还能做后端?” 直到我真正理解了 Node.js 的价值,才发现它打开了通往全栈开发的大门。如果你正打算迈出这一步,这篇教程就是为你量身打造的。我会用最简单的方式,带你一步步上手 Node.js,并顺带聊聊它和 React、区块链等热门技术的关系。
什么是 Node.js?为什么学它?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许你在服务器端(也就是电脑或服务器上)运行 JavaScript 代码,而不仅仅是在浏览器里。
它能用来做什么?
- 构建 Web 服务器(比如你的个人博客、电商后台)
- 开发 API 接口(供 React、Vue 等前端调用)
- 处理文件上传、数据库操作
- 编写自动化脚本(比如批量重命名文件)
- 甚至参与区块链项目的后端逻辑(如搭建节点、处理交易)
💡 小知识:很多区块链项目(比如 Ethereum 的部分工具链)就是用 Node.js 写的!虽然区块链本身依赖密码学和共识算法,但它的“胶水层”——比如钱包、API 网关——常常由 Node.js 实现。
第一步:环境准备(5分钟搞定)
别担心,安装 Node.js 非常简单。
1. 下载并安装 Node.js
- 访问官网:https://nodejs.org
- 下载 LTS(长期支持)版本(推荐新手使用)
- 按照提示安装即可(Windows/macOS 都是点下一步)
2. 验证是否安装成功
打开终端(Windows 用 CMD 或 PowerShell,macOS 用 Terminal),输入:
node -v
npm -v
如果看到类似 v18.17.0 和 9.6.7 的版本号,说明安装成功!
✅ npm 是什么?
npm(Node Package Manager)是 Node.js 自带的包管理工具,用来安装第三方代码库(比如 React、Express 等)。你可以把它想象成“App Store”,只不过里面装的是代码模块。
第二步:理解核心概念(用大白话解释)
1. 什么是“服务器端 JavaScript”?
- 浏览器中的 JS:只能操作网页(比如点击按钮弹窗)
- Node.js 中的 JS:可以读写文件、连接数据库、监听网络请求
2. 同步 vs 异步(重点!)
Node.js 最大的特点是 非阻塞 I/O,也就是“异步”。举个例子:
- 同步:你去餐厅点餐,站在柜台前等厨师做完才离开(期间你什么都不能干)。
- 异步:你点完餐拿个号,坐旁边玩手机,饭好了服务员叫你。
Node.js 就是“拿号”的模式,效率更高!
3. 模块化(require / import)
Node.js 把功能拆成一个个“模块”,需要用时再加载。比如:
// 引入内置的文件系统模块
const fs = require('fs');
// 读取文件(异步方式)
fs.readFile('hello.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
第三步:动手实战——写一个简单的 Web 服务器
现在,让我们写一个真正的服务器!目标:当用户访问 http://localhost:3000 时,显示 “Hello, Node.js!”。
步骤 1:创建项目文件夹
mkdir my-node-app
cd my-node-app
步骤 2:初始化 npm 项目
npm init -y
这会生成一个 package.json 文件,记录项目信息。
步骤 3:编写服务器代码
创建文件 server.js,内容如下:
// 引入 Node.js 内置的 http 模块
const http = require('http');
// 创建服务器
const server = http.createServer((req, res) => {
// 设置响应头
res.writeHead(200, { 'Content-Type': 'text/plain' });
// 发送响应内容
res.end('Hello, Node.js!');
});
// 监听 3000 端口
server.listen(3000, () => {
console.log('服务器运行在 http://localhost:3000');
});
步骤 4:运行服务器
在终端执行:
node server.js
然后打开浏览器,访问 http://localhost:3000,你会看到那句熟悉的问候!
🎉 恭喜!你刚刚写了一个真正的 Web 服务器!
第四步:升级一下——返回 HTML 页面
纯文本太单调了,我们让它返回一个简单的 HTML 页面。
修改 server.js:
const http = require('http');
const fs = require('fs');
const server = http.createServer((req, res) => {
// 读取 index.html 文件
fs.readFile('index.html', 'utf8', (err, data) => {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('404 Not Found');
return;
}
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(data);
});
});
server.listen(3000);
再创建 index.html:
<!DOCTYPE html>
<html>
<head>
<title>我的第一个 Node.js 页面</title>
</head>
<body>
<h1>欢迎来到 Node.js 世界!</h1>
<p>这个页面是由 Node.js 服务器动态返回的。</p>
</body>
</html>
重启服务器(按 Ctrl+C 停止,再运行 node server.js),刷新浏览器,就能看到 HTML 页面了!
第五步:连接前端框架(React)与 Node.js
很多同学会问:“Node.js 和 React 有什么关系?”
- React:负责前端界面(运行在浏览器)
- Node.js:负责后端逻辑(运行在服务器)
它们通常通过 API 通信。例如:
- React 页面加载时,向
http://localhost:3000/api/users发起请求 - Node.js 服务器收到请求,查询数据库,返回 JSON 数据
- React 收到数据,渲染用户列表
🔗 技术分享小贴士:在实际项目中,我们会用 Express(Node.js 的 Web 框架)简化 API 开发。比如:
const express = require('express'); const app = express(); app.get('/api/users', (req, res) => { res.json([{ id: 1, name: 'Alice' }]); }); app.listen(3000);
新手常见问题解答
| 问题 | 解答 |
|---|---|
为什么我的 node server.js 报错? |
检查文件名是否正确,是否在项目目录下运行 |
| 修改代码后要重启服务器吗? | 是的!除非你用 nodemon(可全局安装:npm install -g nodemon,然后用 nodemon server.js) |
| Node.js 能连接数据库吗? | 当然!常用有 MongoDB(用 Mongoose)、MySQL(用 mysql2)等 |
| 学 Node.js 需要先会 React 吗? | 不需要!但如果你想做全栈,两者搭配效果更好 |
学习建议 & 下一步路线图
- 巩固基础:多练习文件操作、HTTP 请求、模块引入
- 学习 Express:它是 Node.js 最流行的 Web 框架,能极大简化开发
- 尝试连接数据库:从 SQLite 或 MongoDB 开始
- 构建完整项目:比如一个博客系统(前端用 React,后端用 Node.js + Express)
- 探索进阶领域:
- WebSocket(实时聊天)
- JWT 用户认证
- 部署到云服务器(如 Vercel、Render、阿里云)
- 甚至尝试参与开源区块链项目(如 Hardhat、Truffle 工具链都是 Node.js 写的!)
💬 我的建议:不要试图一口吃成胖子。我当初也是从
console.log('Hello')开始的。每天写一点代码,一个月后你会惊讶于自己的进步。
结语
Node.js 让 JavaScript 成为一门“全栈语言”,无论你是想做前端、后端,还是对区块链、技术分享、开源项目感兴趣,它都是你不可或缺的工具。
希望这篇教程能成为你编程之路的起点。如果你觉得有帮助,欢迎在评论区留言,或者把这篇文章分享给更多初学者!
记住:每一个大神,都曾是小白。你,也可以做到。
Happy Coding! 🚀

评论 0