Node.js新手教程:从零开始学习服务器端JavaScript
开篇:什么是Node.js?它能用来做什么?

你可能已经听说过 JavaScript,它是网页开发中用于实现页面交互的语言。但你是否知道,JavaScript 不仅仅能在浏览器里运行?Node.js 就是让 JavaScript 能在服务器上运行的工具。
简单来说,Node.js 是一个用 JavaScript 来写后端代码的技术平台。你可以用它来:
- 创建 Web 服务器
- 处理用户请求(比如登录、注册)
- 操作数据库
- 实现文件上传和下载
- 甚至开发聊天应用、API 接口等等
这听起来是不是很强大?别担心,我们一步一步来,你不需要一开始就理解所有内容。
环境准备:安装 Node.js 和基本配置

要开始学习 Node.js,首先你得在电脑上安装它。下面是详细步骤:
步骤 1:去官网下载安装包
打开浏览器访问 https://nodejs.org
点击 "LTS" 版本(这是稳定版,适合初学者)进行下载。
Tips:如果你是 Mac 用户,推荐使用 Homebrew 安装:
brew install node
步骤 2:安装 Node.js
双击下载的安装包,按照提示一路点“下一步”即可完成安装。
步骤 3:验证是否安装成功
打开命令行工具(Windows 上是 CMD 或 PowerShell,Mac 和 Linux 是终端),输入以下命令:
node -v
你会看到类似 v18.15.0 的输出,说明 Node.js 已经安装成功!
再输入:
npm -v
如果能看到 npm 的版本号,那就说明环境已经准备好了。
📌 什么是 npm?它是 Node.js 自带的包管理器,用来安装别人写好的 JavaScript 工具库。
核心概念:用最简单的语言解释关键知识点

刚开始学 Node.js 时,有些术语会让你感觉陌生。下面我们用生活中的例子来解释几个核心概念。
1. 模块化编程
就像乐高积木一样,把程序分成一块一块的小功能,每一块都独立存在,需要的时候就调用。这种思想叫做模块化。
Node.js 使用 require() 函数来引入模块,例如:
const fs = require('fs');
上面这段代码表示引入 Node.js 内置的“文件系统”模块,可以用来操作文件。
2. 非阻塞 I/O(异步)
传统编程方式处理任务是按顺序来的,比如:
先做饭 ➜ 等饭熟 ➜ 再吃饭 ➜ 再洗碗
而 Node.js 更像是一个会同时处理多件事情的机器人:
煮饭的同时还能洗衣服、听音乐
这就是 Node.js 的特点:异步非阻塞。这意味着它可以高效地处理多个请求,特别适合做网络服务。
下面是一个简单的异步函数示例:
setTimeout(() => {
console.log("2秒后我才会出现");
}, 2000);
console.log("这句话先出现");
执行结果是:
这句话先出现
2秒后我才会出现
可以看到,Node.js 并不是等定时器完成才继续执行下一条语句,而是“先放着,等时间到再说”。
3. 文件读写(File System)
Node.js 提供了内置模块 fs 来操作文件。我们可以创建、读取、修改甚至删除文件。
举个例子,创建一个名为 hello.txt 的文件,并写入一句话:
const fs = require('fs');
fs.writeFile('hello.txt', 'Hello, Node.js!', (err) => {
if (err) throw err;
console.log('文件已保存!');
});
运行这个脚本之后,你的项目目录里就会出现一个 hello.txt 文件。
4. HTTP 服务器
Node.js 最常见的用途之一就是搭建 Web 服务器。我们来试试搭建一个最简单的 Web 服务器吧:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('欢迎来到我的第一个Node.js网站');
});
server.listen(3000, () => {
console.log('服务器启动在 http://localhost:3000');
});
将以上代码保存为 server.js,然后在命令行中运行:
node server.js
打开浏览器访问 http://localhost:3000,就能看到一行文字,恭喜!你刚刚亲手打造了一个 Web 服务器!
实战项目:做一个简单的“留言墙”网站

理论讲完啦,现在我们动手做一个小项目,帮助你更好地理解和运用所学知识。
我们将用 Node.js 做一个“留言墙”,任何人都可以在页面上提交留言,内容会被显示出来。
第一步:初始化项目结构
新建一个文件夹,比如叫 message-wall,进入该文件夹并创建如下结构:
message-wall/
├── index.html
└── server.js
第二步:编写 HTML 页面
编辑 index.html 文件,写一个简单的留言表单:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>留言墙</title>
</head>
<body>
<h1>我要留言</h1>
<form action="/submit" method="POST">
<label>姓名:</label><input type="text" name="name"><br>
<label>留言:</label><textarea name="message"></textarea><br>
<button type="submit">提交留言</button>
</form>
</body>
</html>
第三步:搭建服务器支持提交功能
虽然我们现在还没学到数据库,但我们先用 Node.js 把数据存到内存中试试看。
打开 server.js,编写以下代码:
const http = require('http');
const fs = require('fs');
let messages = [];
const server = http.createServer((req, res) => {
if (req.url === '/' && req.method === 'GET') {
fs.readFile('index.html', 'utf8', (err, data) => {
if (err) {
res.statusCode = 500;
return res.end('读取页面失败');
}
res.setHeader('Content-Type', 'text/html');
res.end(data);
});
} else if (req.url === '/submit' && req.method === 'POST') {
let body = '';
req.on('data', chunk => {
body += chunk.toString();
});
req.on('end', () => {
// 解析 form 数据(格式类似于 name=xxx&message=yyy)
const params = new URLSearchParams(body);
const name = params.get('name');
const message = params.get('message');
messages.push({ name, message });
res.writeHead(302, { 'Location': '/' });
res.end();
});
} else {
res.writeHead(404);
res.end('找不到页面');
}
});
server.listen(3000, () => {
console.log('留言墙服务器运行在 http://localhost:3000');
});
这段代码主要做了三件事:
- 当用户访问
/时,返回index.html。 - 当用户提交留言到
/submit时,接收数据并保存到数组messages中。 - 提交成功后跳转回首页。
目前我们还没展示留言内容,所以接下来我们给它添加“显示留言”的功能。
第四步:在页面中显示留言内容
为了展示留言,我们需要动态生成 HTML 页面内容,而不是静态文件。
在 server.js 中找到 GET 请求的部分,将其改为如下代码:
fs.readFile('index.html', 'utf8', (err, data) => {
if (err) {
res.statusCode = 500;
return res.end('读取页面失败');
}
// 构造留言列表HTML
let listHtml = '<ul>';
messages.forEach(msg => {
listHtml += `<li><strong>${msg.name}</strong>: ${msg.message}</li>`;
});
listHtml += '</ul>';
// 替换占位符
const html = data.replace('<!-- MESSAGES -->', listHtml);
res.setHeader('Content-Type', 'text/html');
res.end(html);
});
同时,在 index.html 中加入一个占位符:
<!-- MESSAGES -->
这样每次用户访问首页时,都会看到最新的留言内容。
第五步:测试一下
在命令行运行:
node server.js
打开浏览器访问 http://localhost:3000,填写信息并提交,刷新页面看看留言有没有显示出来!
🎉 恭喜你完成了第一个 Node.js 项目!
常见问题解答

Q1:Node.js 和 JavaScript 是不是一样的?
A:JavaScript 是一门语言,Node.js 是一个运行 JavaScript 的环境。你可以把它理解为“浏览器外的 JS 运行器”。
Q2:为什么 Node.js 默认没有数据库连接能力?
A:Node.js 本身只是一个运行平台,不包含数据库功能。你需要通过 npm 安装额外的库,如 mysql, mongodb, sequelize 等。
Q3:怎么调试 Node.js 代码?
A:你可以像调试普通 JS 一样使用 console.log() 输出信息,或者使用 VS Code、Chrome DevTools 进行断点调试。
学习建议:下一步该学什么?
你现在掌握了 Node.js 的基础操作和搭建 Web 服务器的能力。接下来推荐你继续学习以下几个方向:
✅ Express 框架
Express 是最受欢迎的 Node.js Web 框架,它简化了很多 HTTP 操作和路由管理。建议学习它来提升效率。
✅ 模板引擎(如 EJS、Pug)
如果你想更方便地生成动态页面内容,模板引擎是一个好选择。
✅ MongoDB / MySQL / PostgreSQL 等数据库连接
学会如何与真实数据库交互,才能做出真正有用的应用。
✅ RESTful API 设计
很多前端项目依赖于后端提供的接口,学会设计 API 是成为全栈开发者的必要技能。
结语
这篇文章为你打下了 Node.js 的坚实基础。记住一句话:“编程是靠练出来的”。即使你现在还不完全理解所有的细节也没关系,关键是不断尝试、犯错、改正,最终你会越走越远!
加油,希望你早日成为一名出色的开发者 💪💻

评论 0