向初学者讲清楚,Node.js Express 是什么

84 阅读2分钟

当然可以!下面我会用最通俗易懂、零基础也能懂的方式,向初学者讲清楚:

Node.js Express 是什么?它有什么用?怎么用?有哪些核心功能?

全程配比喻、例子和代码,让你轻松入门 💡


🌟 一、先打个比方:Express 是什么?

想象你开了一家「快递驿站」📦

顾客会来:

  • 寄快递 📦
  • 取快递 📥
  • 问:“我的快递到了吗?” 🤔

你需要一个「前台小哥」来:

  • 接收请求(“我要寄快递”)
  • 处理业务(打印单子、收货)
  • 返回结果(给你一个取件码)

✅ 在编程中:

  • 你的网站 = 快递驿站
  • 用户访问网站 = 顾客来办事
  • 「前台小哥」 = Express 框架
  • Node.js = 整个驿站的电力和系统

🔥 Express = 让 Node.js 能轻松处理网页请求的“超级助手”


🧱 二、Express 的主要功能(5 大核心)

功能作用初学者理解
✅ 处理 HTTP 请求接收用户访问、提交数据用户点“登录” → 你收到请求
✅ 定义路由(URL)设置不同页面的地址/ 首页,/about 关于页
✅ 返回数据或页面给用户回消息返回 JSON、HTML、文件
✅ 中间件机制在请求前后加功能验证登录、记录日志
✅ 静态文件服务提供图片、CSS、JS让网页能加载样式和脚本

🚀 三、Express 基本用法(手把手)

第一步:创建项目

mkdir my-express-app
cd my-express-app
npm init -y
npm install express

第二步:创建 server.js

// 引入 Express
const express = require('express')

// 创建“快递驿站”(服务器)
const app = express()

// 设置端口
const PORT = 3000

// 定义路由:当用户访问 / 时
app.get('/', (req, res) => {
  res.send('<h1>欢迎来到首页!🏠</h1>')
})

// 定义另一个路由:/about
app.get('/about', (req, res) => {
  res.send('<h1>关于我们 🧑‍💻</h1><p>这是一个 Express 教程</p>')
})

// 启动服务器
app.listen(PORT, () => {
  console.log(`🚀 服务器运行在 http://localhost:${PORT}`)
})

第三步:启动服务

node server.js

打开浏览器访问:

  • http://localhost:3000 → 看到“欢迎来到首页”
  • http://localhost:3000/about → 看到“关于我们”

✅ 恭喜!你已经用 Express 做出了一个简单的网站!


📂 四、Express 核心概念详解

1. 路由(Routing)

就是“网址路径”对应“做什么”

app.get('/hello', (req, res) => {
  res.send('你好!')
})

app.post('/login', (req, res) => {
  res.send('登录成功!')
})
方法用途
app.get()获取页面、数据(如访问网页)
app.post()提交数据(如登录、注册)
app.put()更新数据
app.delete()删除数据

2. 返回不同类型的数据

app.get('/data', (req, res) => {
  // 返回 JSON(常用于 API)
  res.json({ name: '小明', age: 18 })
})

app.get('/download', (req, res) => {
  // 下载文件
  res.download('./readme.txt')
})

app.get('/page', (req, res) => {
  // 返回 HTML 文件
  res.sendFile(__dirname + '/index.html')
})

3. 中间件(Middleware)——“请求的安检员” 🔍

中间件是在请求处理之前或之后执行的函数。

示例:记录请求日志

app.use((req, res, next) => {
  console.log('有人访问了:', req.method, req.path)
  next() // 继续处理请求
})

每次有人访问,都会在终端打印日志!

常用中间件:

app.use(express.json())        // 解析 JSON 数据
app.use(express.static('public')) // 托管静态文件(HTML/CSS/JS)

4. 托管静态网站(如 Vue 项目)

假设你有一个 public/ 文件夹,里面有 index.htmlstyle.css

app.use(express.static('public'))

访问 http://localhost:3000 就会自动显示 public/index.html


🎯 五、一个完整的小例子:简易 API

const express = require('express')
const app = express()
const PORT = 3000

// 使用中间件
app.use(express.json())

// 模拟数据库
const users = [
  { id: 1, name: '小明' },
  { id: 2, name: '小红' }
]

// 获取所有用户
app.get('/api/users', (req, res) => {
  res.json(users)
})

// 获取某个用户
app.get('/api/users/:id', (req, res) => {
  const id = req.params.id
  const user = users.find(u => u.id == id)
  res.json(user)
})

// 添加用户
app.post('/api/users', (req, res) => {
  const newUser = req.body
  users.push(newUser)
  res.json({ message: '添加成功', user: newUser })
})

app.listen(PORT, () => {
  console.log(`🚀 API 服务器运行在 http://localhost:${PORT}`)
})

测试:

curl http://localhost:3000/api/users

✅ 六、Express 适合做什么?

项目类型是否适合
网站后台 API✅ 最适合!
单页应用(Vue/React)服务✅ 可托管构建后的文件
实时聊天❌ 用 Socket.io 更好
大型复杂系统✅ 可搭配数据库、认证等扩展

📝 七、初学者建议

  1. ✅ 先学会 app.get()res.send()
  2. ✅ 用 express.json() 处理 POST 数据
  3. ✅ 用 app.use(express.static()) 托管静态页面
  4. ✅ 加一个日志中间件,看请求流程
  5. ✅ 多动手改代码,看效果

🎁 总结:一句话记住 Express

Express = 让 Node.js 轻松处理网页请求的“快捷键”

它帮你:

  • 定义网址(路由)
  • 处理用户访问
  • 返回数据或页面
  • 托管静态文件
  • 构建 API 服务