一个文科生的Node.js入门:零基础也能写后端
你好!我是小文,曾经是个彻头彻尾的文科生——大学读的是新闻传播,毕业后做过编辑、写过稿子。三年前,我决定转行做程序员。没有计算机背景,没人带,全靠自己啃书、看视频、敲代码。今天能站在前端讲师的讲台上,回想起当初连“什么是服务器”都不懂的自己,真的感慨万千。
所以,当我看到越来越多像我一样的朋友想学编程,尤其是想接触后端开发却无从下手时,我就想写一篇真正“从零开始”的教程。这篇《Node.js新手教程》,就是专门为你准备的——不管你有没有代码基础,只要愿意动手,就能跟着一步步跑起来。
今天我们要聊的主角是 Node.js。别被名字吓到,它其实就是让 JavaScript 不仅能在浏览器里跑,还能在电脑上直接运行,从而写出后端程序(也就是服务器端代码)的工具。这意味着,你不用再额外学一门新语言,用熟悉的 JS 就能搭建网站后台!
下面,我会带你从安装开始,一步步写出你的第一个 Node.js 服务器,并解释每一步背后的逻辑。全程实战,拒绝空谈。
第一步:装好环境,让代码跑起来
在我刚开始学的时候,光是“安装 Node.js”这一步就卡了我两天——因为网上教程要么太简略,要么默认你已经懂命令行。所以我把每一步都拆解清楚。
1. 下载并安装 Node.js
打开官网:https://nodejs.org
你会看到两个版本:
| 版本类型 | 特点 | 推荐给谁 |
|---|---|---|
| LTS(长期支持版) | 稳定、适合生产环境 | 初学者首选 ✅ |
| Current(最新版) | 功能新,但可能不稳定 | 开发者尝鲜 |
👉 点击绿色的“LTS”按钮下载,然后像安装微信一样双击安装包,一路“下一步”就行。
2. 验证是否安装成功
安装完成后,打开 终端(Mac 用 Terminal,Windows 用 PowerShell 或 CMD),输入:
node -v
如果显示类似 v20.11.0 的版本号,说明装好了!
再输入:
npm -v
也会显示一个版本号(比如 10.2.4)。这个 npm 是 Node.js 自带的“包管理器”,相当于应用商店,后面我们会用它安装工具。
💡 小贴士:如果你是 Windows 用户,建议安装 Windows Terminal,体验更好。
第二步:理解核心概念——Node.js 到底是什么?
很多教程一上来就讲“事件驱动”“非阻塞 I/O”,听得人头晕。我当初也是云里雾里。其实你可以这样理解:
Node.js = JavaScript + 能访问电脑文件、网络、数据库的能力
浏览器里的 JavaScript 只能操作网页(比如点击按钮变颜色),但它不能读你电脑上的文件,也不能监听网络请求。而 Node.js 给了 JS 这些“超能力”。
举个例子:
- 在浏览器里:
console.log("Hello")只会在开发者工具里打印。 - 在 Node.js 里:
console.log("Hello")会直接在终端输出,而且你还能用fs模块读写文件,用http模块创建一个网站服务器!
这就是后端的核心:接收用户请求(比如打开网页)、处理数据(比如查数据库)、返回结果(比如显示文章列表)。
第三步:写你的第一个 Node.js 程序
新建一个文件夹,比如叫 my-first-node,然后在里面创建一个文件:server.js。
打开它,输入以下代码:
// server.js
console.log("我的第一个 Node.js 程序!");
回到终端,进入这个文件夹(用 cd my-first-node),然后运行:
node server.js
终端会立刻打印出那句话!恭喜你,已经迈出了第一步。
但这还不是“后端”。真正的后端要能响应网络请求。我们来升级一下。
创建一个真正的 Web 服务器
修改 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>你好!这是我的 Node.js 后端!</h1>');
});
// 监听 3000 端口
server.listen(3000, () => {
console.log('服务器启动啦!请打开 http://localhost:3000');
});
保存后,在终端运行:
node server.js
然后打开浏览器,访问 http://localhost:3000 —— 你会看到一个大大的标题!
🎉 这就是你写的第一个后端服务!虽然简单,但它具备了所有 Web 后端的基本要素:
- 监听网络请求(端口 3000)
- 处理请求(不管什么路径都返回同一段 HTML)
- 返回响应
⚠️ 注意:运行后终端会一直挂着,按
Ctrl + C才能停止服务器。
第四步:用工具提升效率——Codeium 和 OpenCode
手动写代码很累,尤其对新手。我当初光是拼错变量名就调试半天。后来发现了两个神器:
Codeium:免费的 AI 编程助手
Codeium 是一个免费的 AI 代码补全工具,支持 VS Code、JetBrains 等主流编辑器。安装后,它会像“智能提示”一样,根据你写的上下文自动推荐下一行代码。
比如你输入:
const fs = require('
它会自动提示 'fs',甚至帮你补全文件读取的示例。
对我这种记不住 API 的人来说,简直是救命稻草!
OpenCode:开源学习平台(虚构但合理)
虽然目前没有叫“OpenCode”的知名平台,但我们可以把它理解为开源代码学习社区。比如 GitHub 上有大量 Node.js 入门项目,你可以:
- 搜索 “node.js beginner example”
- 点进项目,看别人怎么组织代码
- 克隆下来本地运行(
git clone ...→npm install→node app.js)
书籍推荐:如果你想系统学习,我强烈推荐《Node.js 设计模式》(中文版)或英文原版 Node.js Design Patterns。虽然名字听起来高深,但前几章非常适合新手建立架构思维。
第五步:实战项目——做一个简单的“留言本”后端
现在,我们来做一个更有意思的小项目:一个能接收留言并展示的后端接口。
项目目标
- GET
/messages:返回所有留言 - POST
/messages:提交一条新留言
我们将用最原始的方式实现(不引入框架),让你看清底层逻辑。
步骤 1:创建项目结构
simple-message-board/
├── server.js
└── messages.json ← 存储留言(模拟数据库)
先创建 messages.json,内容为空数组:
[]
步骤 2:编写 server.js
const http = require('http');
const fs = require('fs');
const url = require('url');
const PORT = 3000;
// 工具函数:读取 JSON 文件
function readMessages() {
const data = fs.readFileSync('./messages.json', 'utf8');
return JSON.parse(data);
}
// 工具函数:写入 JSON 文件
function writeMessages(messages) {
fs.writeFileSync('./messages.json', JSON.stringify(messages, null, 2));
}
const server = http.createServer((req, res) => {
const parsedUrl = url.parse(req.url, true);
const path = parsedUrl.pathname;
const method = req.method;
// 处理 GET /messages
if (path === '/messages' && method === 'GET') {
const messages = readMessages();
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify(messages));
}
// 处理 POST /messages
else if (path === '/messages' && method === 'POST') {
let body = '';
req.on('data', chunk => {
body += chunk.toString();
});
req.on('end', () => {
const newMessage = JSON.parse(body);
const messages = readMessages();
messages.push({
id: Date.now(),
text: newMessage.text,
createdAt: new Date().toISOString()
});
writeMessages(messages);
res.writeHead(201, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ success: true }));
});
}
// 其他路径返回 404
else {
res.writeHead(404);
res.end('Not Found');
}
});
server.listen(PORT, () => {
console.log(`留言本后端启动!端口:${PORT}`);
});
步骤 3:测试接口
启动服务器:
node server.js
测试 GET 请求:
浏览器打开 http://localhost:3000/messages,应该看到 []。
测试 POST 请求:
我们需要用工具发送 POST。推荐使用 curl(终端自带)或 Postman。
用 curl 发送一条留言:
curl -X POST http://localhost:3000/messages \
-H "Content-Type: application/json" \
-d '{"text":"今天天气真好!"}'
再刷新浏览器的 GET 页面,就能看到新留言了!
💡 提示:每次重启服务器,留言都会保留,因为存在
messages.json文件里。
第六步:新手常见问题解答
Q1:为什么我的代码改了,但浏览器没变化?
A:Node.js 不会自动重启。你需要手动停止(Ctrl+C)再重新运行 node server.js。
✅ 解决方案:安装 nodemon(一个自动重启工具):
npm install -g nodemon
nodemon server.js # 它会监听文件变化自动重启
Q2:require 是什么?和 import 有什么区别?
A:require 是 Node.js 原生的模块引入方式(CommonJS 规范)。import 是 ES6 标准,但在普通 .js 文件中默认不支持。
📌 新手建议:先用 require,避免配置麻烦。
Q3:我能用 Node.js 做一个完整的网站吗?
A:可以!但通常我们会搭配框架(如 Express.js)简化开发。
不过先搞懂原生 Node.js,再学框架会更容易理解底层原理。
Q4:Node.js 和 Python/Java 后端有什么区别?
简单对比:
| 技术 | 优点 | 适合场景 |
|---|---|---|
| Node.js | 用 JS 全栈开发、高并发轻量级服务 | 实时应用(聊天、通知)、API 接口 |
| Python(Django/Flask) | 语法简洁、AI/数据分析生态强 | 数据密集型、机器学习后台 |
| Java(Spring) | 稳定、企业级应用成熟 | 大型银行、电商系统 |
作为前端或全栈新人,Node.js 学习曲线最平缓。
第七步:接下来该怎么学?
- 掌握 Express.js:这是 Node.js 最流行的框架,能大幅简化路由、中间件等操作。
- 连接真实数据库:比如 SQLite(轻量)或 MongoDB(NoSQL)。
- 学习 RESTful API 设计:规范你的接口命名和结构。
- 部署上线:试试用 Render、Vercel 或 Railway 免费部署你的后端。
- 阅读源码:在 GitHub 上找小型开源项目,看别人怎么组织代码。
最后送你一句话:编程不是记住所有语法,而是学会解决问题的思路。我当初连“端口”是什么都不知道,现在却能教别人写后端。你也可以。
动手吧!哪怕只是运行一句 console.log,也是迈向工程师的第一步。
作者:小文,前媒体人,现前端讲师。坚信“代码面前,人人平等”。
关注我,下期教你《用 Express.js 三天做出一个博客后台》。

评论 0