Express.js 是 Node.js 中最流行的轻量级 Web 应用框架,用于快速构建服务器端应用程序和 RESTful API。它基于中间件(Middleware)模式,简化了 HTTP 请求处理和路由管理。以下是其核心概念和用法详解:
1. 核心功能
路由管理
通过简洁的语法定义 HTTP 请求(GET、POST 等)与 URL 路径的映射:app.get('/users', (req, res) => { res.send('返回用户列表'); });
中间件(Middleware)
中间件是处理请求和响应的函数链,可执行日志记录、身份验证等操作:app.use((req, res, next) => { console.log('请求时间:', new Date()); next(); // 传递给下一个中间件 });
模板引擎支持
支持 EJS、Pug、Handlebars 等模板引擎渲染动态内容:app.set('view engine', 'ejs'); app.get('/', (req, res) => { res.render('index', { title: '主页' }); });
静态文件服务
使用express.static
托管静态文件(如 CSS、图片):app.use(express.static('public'));
2. 安装与基础示例
安装
通过 npm 安装:npm install express
基础服务器
创建一个简单的服务器:const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(port, () => { console.log(`服务器运行在 http://localhost:${port}`); });
electron中使用
const express = require('express');
3. 常用中间件
内置中间件
express.json()
:解析 JSON 格式的请求体(替代body-parser
)。express.urlencoded()
:解析 URL 编码的请求体。
app.use(express.json()); // Content-Type: application/json app.use(express.urlencoded({ extended: true })); // Content-Type: application/x-www-form-urlencoded
第三方中间件
cors
:处理跨域请求。morgan
:记录请求日志。helmet
:增强安全性头部。
const cors = require('cors'); app.use(cors());
4. 路由模块化
通过 express.Router()
组织路由,提升代码可维护性:
// routes/users.js
const router = express.Router();
router.get('/', (req, res) => { /* 获取用户列表 */ });
router.post('/', (req, res) => { /* 创建用户 */ });
module.exports = router;
// 主文件
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
5. 错误处理
定义错误处理中间件(需4个参数):
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('服务器错误!');
});
6. 优缺点
优点
- 轻量灵活,易于扩展。
- 庞大的中间件生态系统。
- 适合快速开发 API 和单页应用。
缺点
- 需手动处理某些功能(如身份验证)。
- 异步处理稍显陈旧。
Express 的核心在于 中间件流程 和 路由控制,通过组合不同功能模块,开发者可以高效构建灵活的服务端应用。学习时建议结合官方文档和常用中间件(如 Express 中间件列表)实践。
此方悬停