一个文科生的Node.js入门:零基础也能写后端

灵活的先知
2026-04-25 14:37
阅读 1459

你好!我是小文,曾经是个彻头彻尾的文科生——大学读的是新闻传播,毕业后做过编辑、写过稿子。三年前,我决定转行做程序员。没有计算机背景,没人带,全靠自己啃书、看视频、敲代码。今天能站在前端讲师的讲台上,回想起当初连“什么是服务器”都不懂的自己,真的感慨万千。

所以,当我看到越来越多像我一样的朋友想学编程,尤其是想接触后端开发却无从下手时,我就想写一篇真正“从零开始”的教程。这篇《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 installnode 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 学习曲线最平缓。


第七步:接下来该怎么学?

  1. 掌握 Express.js:这是 Node.js 最流行的框架,能大幅简化路由、中间件等操作。
  2. 连接真实数据库:比如 SQLite(轻量)或 MongoDB(NoSQL)。
  3. 学习 RESTful API 设计:规范你的接口命名和结构。
  4. 部署上线:试试用 Render、Vercel 或 Railway 免费部署你的后端。
  5. 阅读源码:在 GitHub 上找小型开源项目,看别人怎么组织代码。

最后送你一句话:编程不是记住所有语法,而是学会解决问题的思路。我当初连“端口”是什么都不知道,现在却能教别人写后端。你也可以。

动手吧!哪怕只是运行一句 console.log,也是迈向工程师的第一步。

作者:小文,前媒体人,现前端讲师。坚信“代码面前,人人平等”。
关注我,下期教你《用 Express.js 三天做出一个博客后台》。

评论 0

最热最新
暂无评论
灵活的先知Lv.1
0
影响力
0
文章
0
粉丝