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

你是不是一直以为JavaScript只能用在浏览器里?比如网页上的按钮点击、弹窗特效等?其实,JavaScript不仅可以运行在浏览器中,也可以运行在服务器端。这就要感谢一个叫 Node.js 的工具。
什么是Node.js?
Node.js 并不是一个编程语言,而是一个让你可以在电脑上(或服务器上)运行 JavaScript 的运行环境。
简单理解就是:
- 以前JS只能在浏览器运行
- 现在有了Node.js,JS也能在你本地电脑的终端里运行了!
它有什么用?
Node.js 可以用来做很多事:
- 构建后端服务(也就是我们常说的“网站后台”)
- 搭建本地开发服务器
- 编写命令行工具
- 自动化任务处理(比如打包代码、压缩图片)
换句话说:如果你会写 JS,现在你可以用熟悉的语言来写“后端”,不用再去学 PHP 或 Java!
环境准备:安装Node.js和NPM

要使用 Node.js,第一步当然是把它装到你的电脑上!
Step 1: 下载并安装 Node.js
前往官网:https://nodejs.org
你会看到两个版本:
- LTS(长期支持版)推荐初学者使用
- Current(最新版)适合高级用户
下载后按提示一步步安装即可。
Step 2: 验证是否安装成功
打开终端(Windows 上是 CMD 或 PowerShell,Mac 是终端,Linux 是终端),输入以下命令:
node -v
如果返回类似 v18.16.0 这样的版本号,说明 Node.js 安装成功 ✅
然后执行:
npm -v
如果也显示版本号,说明 NPM 也安装好了 ❗
NPM 全称是 Node Package Manager,可以理解为“JS插件市场”
核心概念讲解(通俗易懂版)

1. Node.js 是什么结构?
想象一下你要盖一座房子,Node.js 提供的是砖块、水泥、钢筋这些基本材料。你可以用它们来搭建你想要的服务。
最简单的 Node.js 应用,就是一个 .js 文件,在终端运行就能工作。比如:
示例:最简单的Node程序
新建一个文件,例如叫 hello.js,里面写:
console.log("Hello from Node.js!");
然后在终端进入这个文件所在目录,输入:
node hello.js
你就运行了自己的第一个 Node.js 程序啦!
2. Node.js 能做什么?
我们可以用它做:
- 执行计算任务(比如加减乘除)
- 处理文件(读写文件)
- 创建网页服务器(响应浏览器请求)
接下来,我们先体验一下“创建网页服务器”。
示例:创建一个HTTP服务器
新建文件 server.js,内容如下:
// 引入 http 模块
const http = require('http');
// 创建服务器
const server = http.createServer((req, res) => {
// 设置 HTTP 响应头
res.writeHead(200, { 'Content-Type': 'text/plain' });
// 发送响应数据
res.end('欢迎访问我的第一个Node.js服务器!\n');
});
// 监听 3000 端口
server.listen(3000, () => {
console.log('服务器已启动,访问 http://localhost:3000');
});
保存后,在终端运行:
node server.js
打开浏览器,输入地址:
http://localhost:3000
你会看到页面显示:
欢迎访问我的第一个Node.js服务器!
是不是很酷?这就是一个最简单的 Node.js Web 服务器!
3. 什么是模块(Module)和 require()
我们在上面的例子中用了 require('http'),这是 Node.js 的一种加载“模块”的方式。
可以把模块理解成一个个预先封装好的功能包,我们只需要引入,就能直接使用它们的功能。
常见内置模块举例:
| 模块名 | 功能 |
|---|---|
| fs | 文件系统操作(读写文件) |
| path | 路径处理 |
| os | 获取操作系统信息 |
| url | 处理URL解析 |
示例:使用fs模块读取文件
新建一个文本文件 message.txt,里面写点内容,比如:
我是测试文本。
再创建一个 readfile.js:
const fs = require('fs');
// 同步读取文件
const data = fs.readFileSync('message.txt', 'utf8');
console.log(data);
终端运行:
node readfile.js
输出就会是你写的内容 🎉
4. 什么是NPM和package.json?
就像刚才说的,NPM 就像是 JavaScript 的插件商店。
- 我们可以用
npm install 包名来安装别人写的模块 - 使用前要先创建
package.json文件
初始化 package.json
在一个项目文件夹下运行:
npm init -y
这样就会自动生成 package.json 文件。
示例:安装并使用第三方包(如lodash)
lodash 是一个常用的实用函数库。
安装:
npm install lodash
创建 lodash-demo.js:
const _ = require('lodash');
const arr = [1, 2, 3, 4, 5];
const chunked = _.chunk(arr, 2); // 分块成[[1,2],[3,4],[5]]
console.log(chunked);
运行结果将是分组数组。
这就意味着:我们可以很方便地借助社区的力量扩展自己的功能!
实战项目:构建一个静态文件服务器

目标:做一个小型服务器,能把一个网页目录下的 HTML/CSS/JS 文件展示出来。
第一步:准备HTML文件
新建文件夹 my-static-server,在里面新建子文件夹 public 和文件:
public/index.html 内容如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>你好,这是我的静态页面</h1>
</body>
</html>
第二步:创建服务器逻辑文件
创建 server.js:
const http = require('http');
const fs = require('fs');
const path = require('path');
const PORT = 3000;
// 根据扩展名设置正确的 Content-Type
function getContentType(ext) {
switch (ext) {
case '.html': return 'text/html';
case '.css': return 'text/css';
case '.js': return 'application/javascript';
default: return 'application/octet-stream';
}
}
// 创建服务器
const server = http.createServer((req, res) => {
let filePath = req.url === '/' ? 'index.html' : req.url;
const extname = path.extname(filePath);
const contentType = getContentType(extname);
filePath = path.join(__dirname, 'public', filePath);
fs.readFile(filePath, (err, content) => {
if (err) {
if (err.code === 'ENOENT') {
// 文件不存在
res.writeHead(404, {'Content-Type': 'text/plain'});
res.end('找不到该页面\n');
} else {
// 服务器错误
res.writeHead(500);
res.end(`服务器错误: ${err.code}`);
}
} else {
// 成功找到文件
res.writeHead(200, {'Content-Type': contentType});
res.end(content, 'utf-8');
}
});
});
// 启动服务器
server.listen(PORT, () => {
console.log(`静态服务器正在监听 http://localhost:${PORT}`);
});
第三步:启动服务器并访问网页
在终端运行:
node server.js
浏览器打开:
http://localhost:3000
你会看到自己写的 HTML 页面!
🎉恭喜你完成了一个完整的静态服务器项目!
新手常见问题解答
Q1:为什么控制台报错“Error: Cannot find module 'xxxxx'”?
答: 因为你没有安装需要的第三方模块。解决方法:
- 在终端输入:
npm install xxxxx - 如果不确定模块是否存在,可去 NPM 官网搜索:https://www.npmjs.com/
Q2:Node.js 和浏览器中的JS有什么区别?
答: 主要区别在于运行环境不同:
- 浏览器中的JS主要与 DOM(网页结构)交互
- Node.js 中没有 DOM,但可以访问文件系统、网络接口、进程管理等功能
Q3:我写的代码没问题,但服务器没反应怎么办?
答:
- 查看终端是否有报错信息
- 确保端口没有被占用(比如换个端口号试试)
- 浏览器访问时注意 IP 地址是否正确(建议使用
localhost)
学习建议:下一步可以学什么?
恭喜你现在掌握了 Node.js 的基础使用!接下来可以继续深入以下方向:
1. 进阶学习内容推荐:
- ✅ Express.js 框架 —— 让你更方便地写Web应用
- ✅ MongoDB数据库连接 —— Node+MongoDB是最常见的组合之一
- ✅ RESTful API 设计 —— 为移动端提供接口服务
- ✅ 用 Socket.io 实现实时通信
- ✅ 部署Node.js服务(使用Nginx / PM2 / Docker)
2. 学习资源推荐:
- 官方文档:https://nodejs.org/en/docs/
- MDN Web Docs:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
- Node入门电子书《深入浅出Node.js》(作者:朴灵)
总结回顾
今天我们从零开始认识了 Node.js:
- 学会了它的基本作用:让 JS 能运行在服务器上
- 安装了开发环境,并验证了基本功能
- 掌握了一些核心概念:模块、NPM、HTTP服务器
- 亲手实践了一个小项目——静态服务器
- 解决了一些常见的疑难问题
记住一句话:“实践出真知”。别怕敲代码,多动手才能真正掌握 Node.js!
如果你喜欢这篇教程,不妨收藏它,作为你学习路上的第一份笔记。祝你早日成为一名优秀的开发者!🚀

评论 0