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

如果你是第一次听说 Node.js,可能有点好奇它到底是什么。那我来简单说一下:
👉 Node.js 不是一个编程语言,也不是一个开发框架,而是一个运行 JavaScript 的环境。
我们知道,JavaScript 最初是写在网页里、在浏览器中运行的,比如弹出一个对话框、切换图片等操作,都是用 JS 完成的。但 Node.js 的出现改变了这一局面——它让 JavaScript 也能在服务器上运行,也就是说,你可以用 JavaScript 编写后端代码了!
Node.js 能做什么?
- 搭建网站服务器(比如你访问的某宝首页背后也可能有 Node.js 在工作)
- 创建 API 接口(前后端通信)
- 写命令行工具(比如生成文件、处理数据)
- 做实时应用(聊天室、在线游戏等)
- 搭配前端框架做全栈开发(React + Node)
换句话说,从前端到后端,你都可以用 JavaScript 来完成。是不是很酷?那我们先从搭建开发环境开始吧!
环境准备:一步一步安装和配置 Node.js 环境

第一步:下载并安装 Node.js
我们可以通过官网下载安装包:https://nodejs.org/
有两个版本:
- LTS 版本(长期支持):适合新手使用,推荐选择这个。
- Current(最新版本):更新功能多一些,但可能会遇到不稳定问题。
点击“Download”按钮下载对应的系统版本(Windows/macOS/Linux)。安装过程很简单,一路下一步即可。
安装完成后,打开终端或命令行工具,输入下面两个命令看看是否安装成功:
node -v
npm -v
如果输出了版本号,比如 v20.12.0 和 10.x.x,说明已经安装成功 🎉。
📌 补充小知识:
- node 是执行 JavaScript 的核心程序。
- npm 是 Node.js 的包管理工具,可以理解为“插件市场”,里面有很多别人写好的代码可以直接使用。
第二步:创建第一个 Node.js 文件
新建一个文件夹,比如叫 my-node-project,在里面新建一个名为 app.js 的文件(名字可以自己取),然后添加如下代码:
console.log("Hello, Node.js!");
保存之后,在终端进入该目录,运行命令:
node app.js
你会看到控制台打印出一句话:
Hello, Node.js!
没错,这就是你的第一个 Node.js 程序!👏
核心概念讲解:用最简单的语言解释关键知识点


现在我们了解了如何运行基本的 JS 文件,接下来介绍几个你必须知道的概念。
1. 模块化(Modules)
在 Node.js 中,每个 .js 文件其实就是一个模块。我们可以将不同功能的代码拆分到不同的模块中,再通过 require() 引用它们。
举个例子:
创建一个新的文件 math.js,内容如下:
function add(a, b) {
return a + b;
}
module.exports = { add };
然后在 app.js 中引用它:
const math = require('./math');
console.log(math.add(10, 20)); // 输出 30
💡 小提示:require() 是导入模块的方式,module.exports 是导出模块的方法。
2. 文件系统(fs 模块)
Node.js 自带了内置模块,其中一个非常常用的叫做 fs(file system 文件系统模块),可以帮助你读写文件。
举个例子:读取一个文本文件的内容
创建一个 hello.txt 文件,里面随便写点内容,比如:
这是 Node.js 教程中的第一个文本文件。
然后修改 app.js 为:
const fs = require('fs');
fs.readFile('hello.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
运行一下:
node app.js
你会看到控制台打印出了文件的内容。
📝 这里我们用了异步方式读文件,回调函数 (err, data) 会在文件读取完成后自动触发。
3. http 模块:快速搭建 Web 服务器
Node.js 的另一个强大功能是轻松构建服务器。我们来看看怎么创建一个基础的网页服务器。
把 app.js 修改为以下内容:
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200; // 设置响应状态码为200(正常)
res.setHeader('Content-Type', 'text/plain'); // 设置返回的数据类型是纯文本
res.end('欢迎来到我的第一个 Node.js 网页!\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('服务器正在监听 http://127.0.0.1:3000/');
});
运行这个服务器:
node app.js
然后打开浏览器访问地址:
http://127.0.0.1:3000/
你会看到页面显示:
欢迎来到我的第一个 Node.js 网页!
✅ 这就是你的第一个 Web 服务器!虽然功能还不复杂,但你可以一步步扩展它!
实战项目:做一个简易的记事本服务

我们现在就利用刚刚学到的知识,做一个简单的“记事本”Web 应用。它具备以下两个功能:
- 访问
/返回当前所有记录 - 访问
/add?note=xxx添加一条新笔记
第一步:准备结构
创建如下文件结构:
notes-app/
├── notes.json # 存放笔记信息
├── app.js # 主程序
notes.json 初始内容:
["初始笔记"]
第二步:编写代码(app.js)
修改 app.js 内容如下:
const http = require('http');
const url = require('url');
const fs = require('fs');
const server = http.createServer((req, res) => {
const parsedUrl = url.parse(req.url, true); // 解析 URL 地址
const path = parsedUrl.pathname;
if (path === '/') {
fs.readFile('notes.json', 'utf8', (err, data) => {
if (err) {
res.writeHead(500);
res.end("读取笔记失败");
return;
}
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(data);
});
} else if (path === '/add') {
const note = parsedUrl.query.note;
if (!note) {
res.end("请提供note参数");
return;
}
fs.readFile('notes.json', 'utf8', (err, data) => {
let notes = JSON.parse(data);
notes.push(note);
fs.writeFile('notes.json', JSON.stringify(notes), (err) => {
if (err) {
res.end("保存失败");
return;
}
res.end("已添加笔记:" + note);
});
});
} else {
res.end("404 找不到页面");
}
});
server.listen(3000, () => {
console.log("服务器运行在 http://localhost:3000/");
});
第三步:运行和测试
运行服务器:
node app.js
现在你可以用浏览器测试:
- 打开 http://localhost:3000/ 查看已有笔记
- 使用 http://localhost:3000/add?note=今天天气真好 添加一条新笔记
- 再刷新首页查看是否新增成功!
✨ 成功了吗?恭喜你做出了第一个可交互的 Node.js 网页服务!
常见问题解答(FAQ)
很多初学者都会遇到一些问题,这里列出几个常见的,并给出解决办法:
❓Q1. 安装完 node 后提示不是内部或外部命令怎么办?
✅ 可能没有正确安装或路径未加入系统环境变量,请重新安装官方提供的安装包,确保勾选了“将 Node.js 加入系统路径”。
❓Q2. 为什么 console.log() 打印不出来内容?
✅ 确保你在终端运行的是正确的文件名,例如 node app.js。如果是其他文件名或者拼错了,就不会执行你的代码。
❓Q3. 如何查看错误原因?
✅ Node.js 会把错误直接打印在终端里。注意观察红色文字,一般会指出哪一行出错。你也可以在代码中加 try-catch 或者日志来调试。
❓Q4. 为什么用异步函数如 readFile?
✅ 异步是为了提升性能。Node.js 是单线程的,如果不异步处理耗时任务,整个程序就会卡住。使用回调或 Promise 可以避免阻塞。
❓Q5. 可以用浏览器查看本地文件吗?为什么访问 localhost 报错?
✅ 需要运行 Node 程序后,才能通过浏览器访问指定端口(如 3000),否则无法通信。确认你的 Node.js 服务器是否已经启动。
学习建议:下一步学什么?
恭喜你完成了入门学习!你现在可以自己搭建简单的服务器、处理文件、读写数据。那么接下来该怎么继续进步呢?
✅ 推荐进阶路线图:
| 阶段 | 学习目标 | 相关技术 |
|---|---|---|
| 1️⃣ 入门 | 掌握 Node.js 基础语法和常见模块 | fs, http, path, url |
| 2️⃣ 提升 | 学会 Express.js 框架简化开发 | Express, 路由管理, 中间件 |
| 3️⃣ 数据库 | 连接 MongoDB 或 MySQL 存储数据 | Mongoose, mysql2 |
| 4️⃣ 接口开发 | 构建 RESTful API 供前端调用 | JSON 处理,POST 请求解析 |
| 5️⃣ 部署上线 | 将项目部署到云平台(如 Vercel、Heroku) | PM2, Docker, nginx |
💡 练习建议:
- 试着做一个用户注册登录系统
- 用 Node.js 做一个定时提醒机器人
- 结合前端(React/Vue)做个自己的博客或待办事项App
- 尝试用 Node.js 写一个爬虫程序抓取网页数据
总结
通过这篇教程,你应该已经掌握了以下能力:
- 安装 Node.js 并运行自己的第一个脚本
- 理解模块、文件读写、HTTP 服务这些核心机制
- 动手实践了一个简单的 Web 记事本
- 知道了新手容易犯的错误以及如何排查问题
Node.js 的世界非常大,但只要你坚持实践,每一步都会离高手更进一步。别忘了多动手练习,边学边改,慢慢就能写出属于你自己的网站或接口啦!
🎉 下一个项目,期待你能写出更精彩的应用!

评论 0