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

想象一下,你平时用JavaScript做网页特效、操作页面元素,这是在浏览器里运行的代码。而今天我们介绍的 Node.js,是让你把 JavaScript 拿来写网站的“幕后英雄”——也就是服务器端代码!
💬 官方说法:
Node.js 是一个基于 Chrome V8 引擎构建的 JavaScript 运行时环境,可以让开发者使用 JavaScript 编写命令行工具和服务器端脚本。
但这听起来是不是有点抽象?我们换个简单的方式来说:
🔧 Node.js 能帮你干啥?
- 做一个后端 API 接口(比如微信小程序调用的接口)
- 构建 Web 服务器
- 开发聊天应用、实时游戏等实时通信类项目
- 自动化一些重复任务(比如压缩图片、打包文件)
- 管理项目依赖(通过 npm)
- ……甚至还可以搭建博客系统!
✅ 为什么选择Node.js?
- 使用的是 JavaScript,前端同学上手非常快。
- 社区活跃,npm 上有几十万个包可以快速调用。
- 事件驱动+异步非阻塞架构,适合高并发场景(比如电商平台搞大促的时候)。
🛠️ 第一步:安装与环境准备

在开始学习之前,你需要准备好开发环境。
📦 步骤1:安装 Node.js
👉 官网地址:https://nodejs.org
点击“Download”下载长期支持版(LTS),然后正常安装即可。
📌 安装完成之后,你可以打开终端(Mac/Linux)或命令提示符(Windows),输入以下命令查看是否安装成功:
node -v
如果你看到类似这样的输出:
v20.12.0
说明 Node.js 安装成功!
接着再输入:
npm -v
如果也显示出版本号,那恭喜你,一切准备就绪!
🧰 步骤2:准备你的代码编辑器
推荐初学者使用 VS Code(简称 VSCode),免费、轻量、插件丰富。
安装完 VSCode 后,你就可以新建 .js 文件来写你的第一个 Node.js 程序啦!
🔍 初识Node.js核心概念


作为刚接触服务器编程的新手,理解下面几个关键概念非常重要:
🌐 1. Node.js 是基于“模块”的
Node.js 的程序由一个个模块组成。每个 .js 文件都是一个独立的模块。可以通过 require() 或 import 来引入其他模块。
示例代码:
// math.js
exports.add = function(a, b) {
return a + b;
}
// app.js
const math = require('./math');
console.log(math.add(3, 5)); // 输出 8
✅ 小贴士:现在主流语法是 ES Modules,但初学建议先掌握 CommonJS 的
require()方式。
⏱️ 2. Node.js 是异步、非阻塞的
这意味着它可以同时处理多个请求而不等待前面的任务完成。这非常适合网络应用。
举个生活中的例子:
你点了一杯奶茶,店员不会一直站在你面前等你喝完才接下一个订单,而是继续接待下一位客人。这就是“异步非阻塞”。
示例代码:模拟异步执行
console.log("开始煮咖啡...");
setTimeout(function() {
console.log("咖啡煮好了!");
}, 2000);
console.log("我可以去干别的事了");
输出顺序会是:
开始煮咖啡...
我可以去干别的事了
咖啡煮好了!
看到了吗?代码并没有卡在煮咖啡这件事上,而是继续往下执行了。
📦 3. 了解 NPM —— Node.js 的“软件商店”
NPM(Node Package Manager)是 Node.js 的包管理器,就像手机里的 App Store。你可以通过它安装第三方库。
示例:安装一个叫做 lodash 的实用库
npm install lodash
然后在代码中使用:
const _ = require('lodash');
let array = [1, 2, 3];
let shuffled = _.shuffle(array);
console.log(shuffled); // 随机打乱数组顺序
🧪 实战项目:用Node.js搭建一个迷你Web服务器
好,说了这么多基础内容,让我们来点实战吧!
我们要做一个最简单的 Web 服务器,访问首页能显示“Hello, Node.js!”。
1️⃣ 创建项目文件夹
新建一个文件夹,比如叫 my-node-app,在里面创建两个文件:
my-node-app/
├── server.js
└── package.json
我们可以先初始化 package.json:
cd my-node-app
npm init -y
2️⃣ 编写 server.js 代码
我们将使用 Node.js 内置的 http 模块来创建服务器:
// server.js
const http = require('http');
const server = http.createServer((req, res) => {
// 设置响应头
res.writeHead(200, { 'Content-Type': 'text/html' });
// 返回响应内容
res.end('<h1>Hello, Node.js!</h1>');
});
// 监听端口 3000
server.listen(3000, () => {
console.log('服务器正在运行,地址:http://localhost:3000');
});
3️⃣ 运行服务器并测试
在终端进入项目目录,运行:
node server.js
终端会输出:
服务器正在运行,地址:http://localhost:3000
然后打开浏览器,输入:
http://localhost:3000
你应该能看到页面上写着一个大大的标题:
Hello, Node.js!
🎉 恭喜你完成了第一个 Node.js 项目!
❓ 新手常见问题解答
Q1:Node.js 和 JavaScript 有什么区别?
A:JavaScript 原本只能在浏览器中运行。Node.js 提供了一个运行环境,让 JavaScript 可以脱离浏览器,在服务器上执行。
Q2:为什么我运行 node server.js 报错了?
A:可能是路径不对、拼写错误,或者引用的模块没安装。请仔细检查代码,并注意错误信息的最后一行,通常会告诉你具体出错的地方。
Q3:能不能用 import 替代 require()?
A:可以,不过需要在 package.json 中添加 "type": "module",或者将文件扩展名改为 .mjs。初学者建议先掌握 require(),因为大多数老项目还是这种风格。
Q4:我的服务器启动后又自动关闭了?
A:有可能你的代码里没有监听端口(如少了 listen()),或者是端口被占用了。可以换一个端口号试试(比如改成 8080)。
Q5:怎么退出正在运行的 Node.js 程序?
A:按下快捷键 Ctrl + C(Mac/Linux/Windows 通用),连续按两次就能强制退出。
🎯 下一步学习路径建议
学完这篇入门教程后,你可以按照以下路径继续深入:
✅ 学习方向一:深入学习Node.js核心模块
| 模块 | 功能 |
|---|---|
fs |
文件系统操作(读写文件) |
path |
处理文件路径 |
events |
事件驱动机制 |
os |
获取操作系统信息 |
📌 练习项目:自己实现一个文件复制功能 or 查看当前电脑内存占用
✅ 学习方向二:使用 Express 框架开发 Web 应用
Express 是 Node.js 中最受欢迎的 Web 开发框架,它简化了路由、中间件、模板引擎等功能的使用。
📌 安装命令:
npm install express
📌 推荐练手项目:
- 博客网站后台API
- 用户登录注册接口
- 微信小程序对接服务器接口
✅ 学习方向三:掌握异步编程与Promise、async/await
Node.js 中大量使用回调函数、Promise 和 async/await,学会它们是进阶的关键。
📌 推荐练习:
- 使用
axios请求外部API数据 - 本地读取多个文件,合并成一个结果
- 使用
fs/promises模块配合 async/await
✅ 学习方向四:部署上线 Node.js 应用
当你写好自己的服务器程序后,如何让它对外服务呢?
推荐学习内容:
- 使用 PM2 管理 Node.js 进程
- 在 VPS 上部署 Node.js 项目
- 配置 Nginx 反向代理
- 使用 GitHub Actions 自动部署
📖 总结
这篇文章我们一路从介绍 Node.js 是什么,到实际动手搭建第一个 Web 服务器,希望你能感受到它的魅力所在。
🎯 记住一句话:
Node.js 就是让你用 JavaScript 来写服务器代码的技术。
只要你熟悉 JavaScript,再加上一点点耐心,你也能成为全栈开发者!
📚 附录推荐资源
- Node.js中文文档:https://nodejs.cn/api/
- Express官方文档:https://expressjs.com/zh-cn/
- GitHub学习仓库推荐:https://github.com/topics/nodejs
- MDN Web Docs:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
如果你喜欢这篇教程,欢迎收藏、转发给同样想学Node.js的朋友一起进步!
如有任何疑问,欢迎留言交流,我会尽可能为你答疑解惑 😊

评论 0