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

如果你已经会写前端网页,但想进一步掌握如何让网站“活起来”,比如处理用户注册、登录、上传文件等功能,那你一定会遇到一个非常重要的技术——Node.js。
Node.js 简单来说就是:在电脑上运行 JavaScript 的工具。
它不是一种新的语言,而是一个环境,让你可以用我们熟悉的 JavaScript 语法来写服务端(也就是服务器上的)代码。有了 Node.js,你就可以用 JavaScript 写出完整的网站后端,和数据库打交道、处理 HTTP 请求、构建 API 接口等。
换句话说:
- 原本 JS 只能在浏览器里运行;
- 现在 Node.js 让你可以在电脑上、服务器上运行 JS;
- 所以前端和后端都能用 JS 来写啦!
Node.js 被广泛用于开发 Web 应用的后端,也常用于构建命令行工具、实时聊天程序、微服务架构、自动化脚本等等。
环境准备:搭建你的第一个 Node.js 开发环境

第一步:安装 Node.js 和 npm
- 访问官网:https://nodejs.org
- 点击 “Download” 下载按钮(推荐使用 LTS 版本,更稳定)
- 下载完成后打开安装程序,一路点击“下一步”即可完成安装
📌 小提示:npm(Node Package Manager)会自动随 Node.js 一起安装。它就像 App Store,可以用来下载别人开发好的模块或库。
如何确认是否安装成功?
在电脑上打开终端(Mac/Linux)或者命令提示符/PowerShell(Windows),输入以下命令:
node -v
npm -v
如果输出版本号(例如 v18.15.0 和 9.5.0),说明安装成功了!
第二步:创建你的第一个项目目录
接下来,我们可以新建一个项目文件夹,练习写一些简单的代码。
- 在任意位置创建一个新文件夹,例如
my-node-project - 打开终端(进入该目录)
cd my-node-project
- 初始化 npm(用于管理依赖)
npm init -y
这会自动生成一个 package.json 文件,里面记录了项目的名称、版本、依赖包等信息。
核心概念:理解 Node.js 的基本知识

学编程就像搭积木,我们先认识几个基础“积木块”。
1. 模块化编程
在 Node.js 中,一切都是模块。你可以把代码拆分成多个文件,然后通过 require() 引用。
举个例子:
示例一:创建两个文件:math.js 和 main.js
// math.js
function add(a, b) {
return a + b;
}
module.exports = { add };
// main.js
const math = require('./math');
console.log(math.add(2, 3)); // 输出:5
📌 运行方式:
node main.js
这样我们就把功能分开放到不同的文件中,方便管理和复用代码。
2. 使用内置模块
Node.js 提供了很多实用的内置模块,比如:
fs(File System):读写文件path:处理文件路径http:创建服务器os:获取系统信息
示例二:使用 fs 模块读取文件内容
// read-file.js
const fs = require('fs');
fs.readFile('hello.txt', 'utf8', (err, data) => {
if (err) {
console.error("读取失败", err);
} else {
console.log(data); // 输出 hello.txt 中的内容
}
});
📌 先创建一个名为 hello.txt 的文件,内容为 "Hello from file!"
📌 然后运行:
node read-file.js
3. 异步编程简介(初识事件循环)
Node.js 最大的特点之一是它的“非阻塞 I/O”特性,简单点说,就是可以一边做一件事,同时还能去做其他事情。
例如:
console.log("1. 启动任务");
setTimeout(() => {
console.log("3. 完成延迟任务");
}, 1000);
console.log("2. 主线程继续执行");
这段代码的输出顺序是:
1. 启动任务
2. 主线程继续执行
3. 完成延迟任务
这是因为在 JavaScript(包括 Node.js)中有一个叫事件循环的东西负责调度任务,使得异步操作不会卡住主线程。
4. Express.js:最流行的 Node.js Web 框架
如果你打算用 Node.js 构建一个网站或接口服务,那么一定要了解 Express.js。
示例三:用 Express 创建一个简单的 Web 服务器
首先安装 Express:
npm install express
然后编写代码:
// app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('欢迎来到我的网站!');
});
app.listen(3000, () => {
console.log('服务器正在监听 http://localhost:3000');
});
启动服务:
node app.js
现在打开浏览器访问:http://localhost:3000,你应该能看到页面输出“欢迎来到我的网站!”
实战项目:做一个天气查询接口

我们现在来动手做一个简单项目:天气查询接口 API。
目标:当用户访问 /weather?city=北京 时,返回假的天气数据。
我们先不调用真实天气 API,只做模拟响应。
步骤一:创建文件结构
创建文件:
index.js:主程序routes/weather.js:天气相关的路由
步骤二:编写代码
index.js
// index.js
const express = require('express');
const app = express();
const weatherRouter = require('./routes/weather');
app.use('/api', weatherRouter);
app.listen(3000, () => {
console.log('服务运行在 http://localhost:3000');
});
routes/weather.js
// routes/weather.js
const express = require('express');
const router = express.Router();
router.get('/weather', (req, res) => {
const city = req.query.city || '未知城市';
const fakeTemp = Math.floor(Math.random() * 40); // 随机温度
res.json({
city,
temperature: fakeTemp + " ℃"
});
});
module.exports = router;
步骤三:运行查看结果
运行服务器:
node index.js
打开浏览器访问:
http://localhost:3000/api/weather?city=上海
你会看到类似这样的 JSON 数据:
{
"city": "上海",
"temperature": "27 ℃"
}
✅ 成功!你已经用 Node.js 做出了自己的第一个 API 接口!
常见问题解答(FAQ)
以下是新手常见的疑问,希望帮你避免踩坑:
❓ Q1:Node.js 与浏览器中的 JavaScript 有什么区别?
- 共同点:语法一致,都支持变量、函数、对象、数组等;
- 不同点:
- Node.js 没有 DOM 和 BOM(无法直接操作网页元素);
- Node.js 多了很多内置模块(如文件系统、网络请求等);
- Node.js 更适合运行在服务器端。
❓ Q2:什么是“回调函数”?我为什么要关心它?
“回调函数”指的是被传入另一个函数中,并在某个时候被“调用”的函数。
例如:
fs.readFile('file.txt', 'utf8', function(err, data) {
// 这个函数就是回调函数
console.log(data);
});
早期 Node.js 大量使用回调,后来引入了 Promise 和 async/await,大大简化了代码逻辑。
❓ Q3:npm 和 package.json 是什么?
npm是 Node.js 自带的一个软件包管理器,类似 App Store。package.json是一个描述项目的配置文件,保存着项目名称、版本、依赖包等信息。- 执行
npm install xxx时,npm 会自动下载并更新该文件。
❓ Q4:Node.js 的版本怎么选择?LTS 是啥意思?
- LTS(Long Term Support)意为长期支持版,更适合生产环境;
- Current(最新版)适合尝鲜和测试新特性;
- 新手建议使用 LTS 版本,更稳定、兼容性更好。
学习建议:下一步我可以学什么?
恭喜你完成了入门!接下来你可以沿着这些方向继续深入:
✅ 继续学习路线图
| 学习阶段 | 推荐内容 |
|---|---|
| 进阶 Node.js | 文件流、进程控制、多线程(worker_threads)、错误处理机制 |
| 常用模块 | path、url、querystring、child_process 等内置模块 |
| Web 开发进阶 | Express 路由、中间件、模板引擎(如 EJS、Pug) |
| 使用数据库 | MongoDB / MySQL / PostgreSQL + Mongoose / Sequelize |
| RESTful API 设计 | 接口规范设计、状态码返回、请求校验等 |
| 测试 | 单元测试、集成测试、Mocha / Jest |
| 工程化 | npm 包发布、ESLint、项目打包部署(PM2) |
结语:坚持练习,你会越学越轻松!
Node.js 是现代 Web 开发的重要工具之一,掌握它能让你从前端开发走向全栈开发,成为真正的“全能开发者”。
刚开始可能觉得有点难,但记住一句话:
“每个高手都是从 Hello World 开始的。”
只要你每天坚持写点代码,不怕犯错,很快你就能写出属于自己的网站和服务!
💡 动手是最好的老师 —— 不要光看,动手改代码、加功能、调试 Bug,才能真正学会 Node.js。
祝你在编程的路上越走越远!🚀

评论 0