Node.js新手教程:从零开始学习服务器端JavaScript
大家好,我是老张,一个干了五年后端开发的“老码农”。今天之所以写这篇教程,是因为我刚入行时踩过太多坑——那时候没人告诉我Node.js到底是什么、怎么用,全靠自己瞎摸索。现在回看,其实入门没那么难,只要有人带你走对第一步。
如果你是完全零基础的小白,别担心!这篇文章会手把手教你用最简单的语言、最清晰的步骤,把Node.js从“听说”变成“会用”。我们还会顺手搭一个能跑起来的小服务器,让你立刻感受到“我居然真的写了个后端程序!”的成就感。
为什么我们要学Node.js?
简单说:Node.js 让你用 JavaScript 写服务器程序。
以前,JavaScript 只能在浏览器里跑(比如点个按钮弹出提示框)。但2009年,一个叫 Ryan Dahl 的程序员说:“为啥不能让 JS 在服务器上跑呢?”于是他搞出了 Node.js。
结果?全世界的前端开发者都沸腾了——终于不用再学一门新语言(比如 Java、Python)就能写后端了!
我当初学的时候,以为 Node.js 是个“框架”,后来才知道它其实是个运行环境,就像浏览器之于网页,Node.js 就是 JavaScript 的“服务器版浏览器”。
环境准备:5分钟搞定开发环境
要写 Node.js 程序,你只需要三样东西:
- 一台电脑(Windows / Mac / Linux 都行)
- 一个代码编辑器(推荐 VS Code,免费又好用)
- 安装 Node.js
第一步:安装 Node.js
- 打开官网:https://nodejs.org
- 点击 LTS 版本(长期支持版,更稳定,适合新手)
- 下载并安装(一路“下一步”就行)
💡 小技巧:安装完后打开终端(Windows 用 PowerShell 或 CMD,Mac 用 Terminal),输入:
node -v npm -v如果看到类似
v20.12.0和10.5.0的版本号,说明安装成功!
第二步:创建你的第一个项目
在电脑上新建一个文件夹,比如叫 my-node-app,然后在终端里进入这个文件夹:
cd my-node-app
初始化项目(这会生成一个 package.json 文件,用来管理项目信息):
npm init -y
-y 表示全部用默认配置,省得你一个个填。
核心概念:Node.js 到底是怎么工作的?
别被“服务器”“后端”这些词吓到。我们用生活中的例子来理解:
| 概念 | 类比解释 |
|---|---|
| Node.js | 一个“厨房”——你在这里做菜(处理请求) |
| JavaScript | 厨师的菜谱(你写的代码) |
| HTTP 请求 | 顾客点单(比如浏览器访问 http://localhost:3000) |
| 响应(Response) | 厨师做好菜端给顾客(返回网页、数据等) |
关键特性:非阻塞 I/O
这是 Node.js 最牛的地方。传统服务器(比如 PHP)像一个厨师:接到一个订单就去做,做完才能接下一个。而 Node.js 像一个“超人厨师”:接到订单后,一边煮面一边炒菜,还能同时接电话——不会卡住。
技术上叫“事件驱动”“非阻塞”,但你只要记住:它能同时处理很多请求,效率高。
实战项目:写一个能返回“Hello World”的服务器
现在,我们动手写一个真正的服务器!目标:当你在浏览器输入 http://localhost:3000,页面显示 “Hello from Node.js!”。
步骤 1:创建 server.js
在你的项目文件夹里新建一个文件,叫 server.js,内容如下:
// 引入 Node.js 内置的 http 模块
const http = require('http');
// 创建一个服务器
const server = http.createServer((req, res) => {
// 设置响应头:告诉浏览器这是 HTML 内容
res.writeHead(200, { 'Content-Type': 'text/html' });
// 发送响应内容
res.end('<h1>Hello from Node.js!</h1>');
});
// 让服务器监听 3000 端口
server.listen(3000, () => {
console.log('服务器已启动,访问 http://localhost:3000');
});
步骤 2:运行服务器
回到终端,执行:
node server.js
你会看到输出:
服务器已启动,访问 http://localhost:3000
步骤 3:打开浏览器
在浏览器地址栏输入 http://localhost:3000,你会看到大大的标题:
Hello from Node.js!
恭喜!你刚刚写了一个真正的 Web 服务器!虽然简单,但原理和淘宝、微信的后端是一样的——只是它们的代码更复杂。
升级一下:用 Express 框架简化开发
刚才我们用的是 Node.js 自带的 http 模块。但实际开发中,大家几乎都用 Express —— 一个轻量级 Web 框架,能让代码更简洁。
安装 Express
在终端执行:
npm install express
这会下载 Express 并记录在 package.json 中。
用 Express 重写服务器
修改 server.js 为:
const express = require('express');
const app = express();
// 定义一个路由:当用户访问根路径 "/" 时
app.get('/', (req, res) => {
res.send('<h1>Hello from Express!</h1>');
});
// 启动服务器
app.listen(3000, () => {
console.log('Express 服务器已启动,访问 http://localhost:3000');
});
再次运行 node server.js,效果一样,但代码更干净!
我当初学的时候,一开始死磕原生
http模块,结果写个路由判断累得半死。后来发现 Express,简直像从自行车换上了电动车!
连接真实世界:用 GitHub 管理你的代码
写完代码,总不能只存在本地吧?这时候就要用 GitHub —— 全球程序员的“代码仓库”。
新手操作指南:
- 注册 GitHub 账号
- 在项目根目录初始化 Git:
git init - 添加文件并提交:
git add . git commit -m "我的第一个 Node.js 项目" - 在 GitHub 上新建一个仓库(比如叫
my-node-app) - 按照提示把本地代码推上去:
git remote add origin https://github.com/你的用户名/my-node-app.git git push -u origin main
以后每次改代码,都可以 git add . → git commit → git push,轻松备份+分享!
智能助手登场:DeepSeek、Lovable、Amazon Q 能帮你什么?
现在 AI 工具遍地开花,作为新手,你可以善用它们加速学习:
| 工具 | 用途 | 适合场景 |
|---|---|---|
| DeepSeek | 国产大模型,支持代码问答 | 中文提问,解释概念,生成简单代码 |
| Lovable | 快速搭建产品原型 | 如果你想把 Node.js 接口做成一个可演示的 App |
| Amazon Q | AWS 官方 AI 助手 | 如果你打算把 Node.js 部署到云服务器(如 EC2) |
举个例子:你在写代码时卡住了,可以问 DeepSeek: “如何用 Express 返回 JSON 数据?” 它会立刻给你一段示例代码,比如:
app.get('/api/user', (req, res) => { res.json({ name: '张三', age: 25 }); });
但注意:AI 是辅助,不是替代。理解原理永远比复制粘贴重要!
新手常见问题 & 解决方案
❓ 问题1:端口被占用,报错 EADDRINUSE
原因:3000 端口已经被其他程序占用了。
解决:
- 换个端口,比如
3001:app.listen(3001, ...) - 或者关掉占用端口的程序(Windows 用任务管理器,Mac 用
lsof -i :3000)
❓ 问题2:修改代码后要手动重启服务器
解决:安装 nodemon,它会自动监听文件变化并重启:
npm install -g nodemon
nodemon server.js
以后改代码,保存后服务器自动刷新,不用手动关再开!
❓ 问题3:require 报错 “Cannot find module”
原因:你可能忘了安装依赖,或者路径写错了。
检查:
- 如果是第三方模块(如
express),确保已执行npm install express - 如果是自己写的文件,路径要写对,比如:
const myModule = require('./utils/myModule.js'); // 注意 ./ 表示当前目录
下一步学什么?我的学习路线建议
Node.js 只是起点,真正的后端开发还有很多内容。我建议你按这个顺序走:
巩固基础
- 学习模块化(
module.exports/import) - 理解
async/await和 Promise(处理异步操作)
- 学习模块化(
连接数据库
- 从 SQLite 或 MongoDB 开始(比 MySQL 简单)
- 用 Mongoose(MongoDB)或 Sequelize(SQL)操作数据
构建 API 接口
- 学 RESTful 设计
- 用 Postman 测试接口
部署上线
- 用 Railway、Vercel 或 AWS Elastic Beanstalk 免费部署
- 绑定自己的域名(可选)
进阶工具
- 学 TypeScript(让 JS 更安全)
- 用 PM2 管理生产环境进程
避坑指南:不要一上来就学“微服务”“Kubernetes”!先把单个 Node.js 应用搞明白,再谈架构。
最后的话
我写这篇教程,就是希望你别像我当初那样,在黑暗中摸索半天。Node.js 的门槛其实很低,关键在于动手写代码。哪怕只是改一行、多试一次,你都在进步。
记住:每一个大神,都是从 console.log('Hello World') 开始的。
现在,打开你的编辑器,敲下第一行代码吧!你离“全栈开发者”,只差一个 server.js 的距离。
有问题?欢迎在评论区留言,或者去 GitHub 上给我提 issue(我的项目地址通常放在 README 里)。编程路上,我们一起走!

评论 0