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

在传统意义上,JavaScript 是一种运行在浏览器中的语言,用于控制网页的交互逻辑。比如你点击一个按钮弹出提示框、表单验证等。
而 Node.js(简称 Node)是一个让你能在电脑上运行 JavaScript 的工具。简单来说:
🧠 Node.js = JavaScript + 可以写服务端程序的工具包
Node.js 出现于 2009 年,它的最大特点就是让前端开发者也能轻松写后端代码。也就是说,你可以用一套语言 —— JavaScript,来同时开发网页和后台服务!
Node.js 能做什么?
- 搭建 Web 服务器
- 处理文件读写
- 构建 API 接口供 App 使用
- 创建聊天应用(如 WebSocket)
- 开发命令行工具(CLI)
- 搭建静态资源服务器
- 和数据库打交道等等
是不是感觉很酷?那就让我们一步一步来体验吧!
⚙️ 第一步:搭建开发环境


在我们正式编写代码之前,先要准备好我们的“工具箱”。
✅ 步骤一:安装 Node.js
- 打开官方网站:https://nodejs.org
- 点击绿色按钮下载 LTS(长期支持版)版本(推荐初学者使用)
- 安装过程非常傻瓜式,一路“下一步”即可完成
✅ 步骤二:检查是否安装成功
打开你的电脑终端(Windows 用 CMD 或 PowerShell,Mac/Linux 用终端 Terminal),输入以下命令:
node -v
你会看到输出类似:
v18.17.1
说明 Node 已经安装成功啦!🎉
再检查 npm(Node.js 包管理器):
npm -v
输出类似:
9.x.x
一切正常!
📦 核心概念:Node.js 的几个重要知识点

学编程就像搭积木,我们要先认识各种积木块。下面我们来看看一些基础但非常重要的概念。
1️⃣ 模块(Module)
在 Node.js 中,模块(Module)是代码组织的基本单位,相当于一个个小功能包。
比如我们可以引入 fs 模块来操作文件,用 http 模块搭建服务器。
示例:引入 fs 模块(文件系统模块)
创建一个文件:readFile.js
// 引入内置模块
const fs = require('fs');
// 同步读取一个文件内容
const data = fs.readFileSync('example.txt', 'utf8');
console.log(data);
然后在同目录下创建 example.txt 文件,里面随便写一句话,比如:
Hello, this is a test file.
在终端运行:
node readFile.js
你会看到输出该文件的内容!
2️⃣ 全局对象与全局变量
在浏览器中,JavaScript 有 window 对象;而在 Node.js 中,全局对象是 global。
例如我们可以这样定义一个全局变量:
global.myName = "Node Beginner";
console.log(global.myName); // 输出:Node Beginner
不过不建议频繁使用全局变量哦,容易造成混乱。
3️⃣ 阻塞 vs 非阻塞 & 回调函数
Node.js 最大的特点是“非阻塞 I/O”,意思是它擅长处理多个并发请求,比如很多用户访问网站时,Node 可以处理得非常快。
但这意味着有些函数不会立刻返回结果,而是等事情做完了再通知你,这种机制叫做——回调函数。
示例:异步读文件
const fs = require('fs');
fs.readFile('example.txt', 'utf8', function (err, data) {
if (err) throw err;
console.log("文件内容是:" + data);
});
console.log("这条信息会先显示");
你会发现:“这条信息会先显示”先出现在终端,然后才是文件内容。这就是异步编程的魅力!
4️⃣ 事件机制(EventEmitter)
Node.js 内置了 EventEmitter 类,可以用来监听并响应各种事件。
示例:自定义事件
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('sayHi', () => {
console.log('Hello from event!');
});
myEmitter.emit('sayHi'); // 触发事件
运行后会输出:
Hello from event!
这个机制常用于构建复杂的异步交互系统。
5️⃣ NPM —— Node 的包管家
NPM(Node Package Manager)是 Node.js 的官方包管理器。你可以把它想象成手机上的应用商店 —— 只要有需要的功能,搜索一下就能下载。
比如我们想安装一个叫 lodash 的工具库来简化数组操作:
npm install lodash
接着在一个 JS 文件里使用:
const _ = require('lodash');
let arr = [1, 2, 3, 4];
let res = _.chunk(arr, 2); // 每两个一组拆分
console.log(res); // [[1,2], [3,4]]
有了 NPM,你可以几乎不需要重复造轮子。
🔧 实战项目:用 Node.js 搭建一个简单的网页服务器
我们来动手做一个小型“Hello World”网页服务器吧!
步骤一:创建一个新文件夹作为项目根目录
比如:mkdir node-project && cd node-project
步骤二:创建 server.js
// 导入 http 模块
const http = require('http');
// 创建服务器
const server = http.createServer((req, res) => {
// 设置响应头:告诉浏览器这是一个 HTML 页面
res.writeHead(200, { 'Content-Type': 'text/html' });
// 发送 HTML 响应
res.end('<h1>Hello, 这是我的第一个Node.js服务器!</h1>');
});
// 监听端口 3000,并启动服务
server.listen(3000, () => {
console.log('服务器运行在 http://localhost:3000');
});
步骤三:运行服务器
终端输入:
node server.js
看到输出:
服务器运行在 http://localhost:3000
然后打开浏览器访问:
你就会看到熟悉的问候语啦!
❓常见问题解答

Q1:Node.js 是不是比 PHP 更好?
A:这没有标准答案。PHP 在后端领域也有强大生态,Node.js 的优势在于统一前后端语言、异步性能强,适合实时通信类应用。
Q2:我写的代码为什么执行不了?
A:确保:
- 文件名拼写正确
- 终端路径正确(cd 到文件所在目录)
- Node 是否已安装,检查方法见前面步骤
Q3:可以用 ES6 的 import 替代 require 吗?
A:可以!但需要把文件保存为 .mjs 扩展名或在 package.json 中设置 "type": "module"。初学阶段建议还是用 require()。
Q4:Node.js 怎么调试?
A:推荐使用 VS Code 的调试插件。点击运行与调试侧边栏,添加配置即可一步步调试。
📚 学习建议:下一步怎么学?
恭喜你已经完成了第一个 Node.js 教程!接下来你可以按照以下路线继续深入:
学习路线图:
- 掌握 Express 框架:更强大易用的 Web 开发框架
- 连接数据库(MongoDB/MySQL)
- 学会使用模板引擎(如 EJS/Pug)
- 尝试用 Node.js 搭建 RESTful API
- 部署你的网站到线上服务器(如 Heroku、Vercel)
推荐学习资源:
- Node.js 官网文档:https://nodejs.org/en/docs/
- Express 官方文档:https://expressjs.com/
- MDN Web Docs:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
- Bilibili 上有很多优秀的免费 Node 教程视频
🎉 结语:你已经是 Node.js 新手啦!
通过本篇文章,你已经学会了如何安装 Node.js、理解核心概念、写出第一个服务器程序,还了解了常见的问题解决方法。
🚀 小技巧:多写多试是学编程最好的办法。哪怕只是修改一行代码去观察变化,那都是进步!
如果你喜欢这篇文章,请点赞分享给其他想入门的朋友,我们一起成长!
✨ 作者简介:一位热爱教学的前端讲师,专注帮助每一个新人走上编程之路。

评论 0