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

在你平时使用的网站、App背后,其实都有一个“看不见的助手”——服务器。这个助手负责处理数据、存储用户信息、运行后台程序等等。
而Node.js就是一个让你可以使用我们熟悉的JavaScript语言来开发这种“助手”(也就是服务端代码)的强大工具。
简单来说:
- 前端 JavaScript 运行在浏览器上,用来做页面交互;
- Node.js 让你可以在电脑或服务器上运行JavaScript代码,来做比如:读写文件、启动本地服务器、处理网络请求等更强大的事情。
有了 Node.js,你就可以不局限于网页操作,而是去构建 Web 应用的后端功能,比如聊天应用、博客系统、电商网站的后台服务等。
环境准备:搭建你的第一个Node.js开发环境

要学 Node.js,首先要安装好它的运行环境。以下是为初学者详细准备的步骤:
✅ 步骤1:下载并安装 Node.js
前往官网:https://nodejs.org/
选择 “LTS(稳定版)”,点击下载对应你系统的安装包(Windows/macOS/Linux)并安装。
安装完成后,在命令行中输入以下命令,确认是否安装成功:
node -v
如果输出类似 v20.11.x 的内容,说明 Node.js 安装成功了。
同样地,执行:
npm -v
NPM是Node.js配套的“软件商店”(后面会讲),如果也输出了版本号,那就一切OK啦!
✅ 步骤2:使用文本编辑器编写代码
推荐初学者使用免费强大的 Visual Studio Code(简称 VSCode)。
地址:https://code.visualstudio.com/
安装完成后,你就可以打开它,新建 .js 文件,写Node.js代码了。
核心概念:用通俗语言解释关键知识

下面我们用最简单的语言和示例,带你了解 Node.js 几个最重要的核心知识点。
1️⃣ 模块(Module):像积木一样拼接功能
想象一下你正在搭乐高积木,每一块积木都是独立的小功能。Node.js 中把这些小功能称为“模块”。
示例:使用内置模块 fs 来操作文件
// 引入 fs 模块(file system)
const fs = require('fs');
// 创建一个文本文档,并写入文字
fs.writeFileSync('hello.txt', '你好,这是我的第一个Node.js程序!');
console.log('文件已创建');
💡 初学者注意:
require()是用来“调用”某个模块的方法fs.writeFileSync是同步方法,表示立刻执行写入操作
2️⃣ NPM:Node.js 自带的应用市场
还记得 App Store 或者手机里的应用商店吗?NPM 就是 Node.js 的“插件商店”。你可以从中安装各种现成的功能模块。
例如安装一个叫 lodash 的工具库(它里面有很多实用函数):
npm install lodash
之后就可以在自己的代码中使用它了:
const _ = require('lodash');
const numbers = [1, 2, 3, 4, 5];
const shuffled = _.shuffle(numbers); // 打乱数组顺序
console.log(shuffled);
3️⃣ HTTP服务器:让别人通过浏览器访问你写的程序
Node.js 最强大的地方之一就是它可以轻松帮你建立一个网站服务器。
来看一个简单的例子:
// 加载 http 模块
const http = require('http');
// 创建服务器对象
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('欢迎来到我的Node.js网站\n');
});
// 监听 3000 端口
server.listen(3000, () => {
console.log('服务器运行中,访问 http://localhost:3000');
});
保存这段代码为 app.js,然后在终端运行:
node app.js
现在,打开浏览器,访问网址 http://localhost:3000,你会发现页面显示一句话:“欢迎来到我的Node.js网站”。
🌟 总结几个关键点:
| 概念 | 含义 | 常用方式 |
|---|---|---|
| 模块 | 独立的功能单元 | require('xxx') |
| NPM | 第三方工具库市场 | npm install xxx |
| HTTP服务器 | 提供Web服务 | http.createServer() |
实战项目:动手做一个“说你好”的网页


为了加深理解,我们来完成一个小项目:搭建一个网页,当访问时显示“你好 + 用户名”。
🔧 功能需求
- 当用户访问
/say?name=张三,返回:你好,张三! - 如果没有提供名字,则显示默认信息:
请输入名字,如 /say?name=李四
🧱 编码步骤
- 新建一个文件:
greet-app.js - 引入所需模块:
http,url
const http = require('http');
const url = require('url');
const server = http.createServer((req, res) => {
const parsedUrl = url.parse(req.url, true); // 解析URL参数
const path = parsedUrl.pathname;
const query = parsedUrl.query;
if (path === '/say') {
const name = query.name || '陌生人';
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(`你好,${name}!<br>试试访问 /say?name=你的名字`);
} else {
res.writeHead(404);
res.end('找不到此页面');
}
});
server.listen(3000, () => {
console.log('运行中,请访问 http://localhost:3000/say?name=张三');
});
运行程序:
node greet-app.js
现在访问网址:http://localhost:3000/say?name=王五,你会看到:
你好,王五!
试试访问 /say?name=你的名字
✅ 成功!你已经完成了一个能接收参数的简易网页功能!
常见问题:新手常犯错误与解决办法
刚接触Node.js的新手常常会遇到这些问题,我们提前解答:
❓ 1. “node不是内部或外部命令”
这通常是因为 Node.js 没有正确安装 或 未添加到系统路径中。
✅ 解决方案:
- 重新下载安装 LTS 版本。
- 安装完成后重启终端。
- 若还不行,可搜索“node 不是命令 Windows 解决方案”。
❓ 2. 使用了 import 报错
你可能会看到这样的错误信息:
SyntaxError: Cannot use import statement outside a module
因为在Node.js默认模式下,不能直接使用ES6的 import/export,需要启用模块支持。
✅ 解决方案:
将文件扩展名改为 .mjs,或者修改 package.json 添加 "type": "module"。
例如,把上面的 greet-app.js 改为 greet-app.mjs,并改成如下代码:
import http from 'http';
import { parse } from 'url';
// ...(后面的逻辑不变)
❓ 3. 修改代码后没生效怎么办?
Node.js 每次运行都是单独启动一次进程。如果你修改了代码,要记得在终端 先按下 Ctrl+C 终止当前程序,再重新运行 node 文件名。
学习建议:下一步怎么走?
Congratulations!你现在掌握了Node.js的基础能力,接下来可以尝试这些进阶方向:
🚀 推荐学习路线图:
- 熟悉Express框架 —— 类似jQuery对JS的重要性,Express是Node.js的常用Web框架,可以简化路由、模板渲染等工作
- 数据库入门 —— 学习如何连接 MySQL 或 MongoDB,真正实现“用户登录”、“发表评论”等功能
- 异步编程与Promise —— Node.js很多功能都基于回调函数或Promise,理解它们能让代码更清晰
- 项目实战 —— 做一个完整的博客系统或聊天应用,锻炼全栈能力
- 深入原理 —— 看看Node.js事件循环、流操作(Stream)、Buffer等内容

📚 资源推荐:
- 免费文档:https://nodejs.org/api/
- 视频课程:B站/YouTube 上搜索「Node.js 零基础」
- 社区互动:加入掘金、知乎、Stack Overflow提问交流
结语
恭喜你完成了这篇从零开始的Node.js教程!现在你已经掌握了:
- Node.js的用途和安装方式
- 常见核心模块的使用方法
- 如何构建一个简单网页服务器
- 常见问题及应对方法
只要不断练习项目,很快你就能开发属于自己的后端服务。记住一句话:写代码是最好的学习方法。希望你在Node.js的世界越学越有趣!
🎉 下一步就开启你的个人项目吧!

评论 0