Express框架介绍(基于Node.js的轻量级、灵活的Web应用框架)
文章目录
- **1. 定义**
- **2. 核心特点**
- - **轻量灵活**
- - **中间件机制**
- - **路由系统**
- - **高性能**
- - **模板引擎支持**
- - **社区与生态**
- **3. 适用场景**
- 1. **API 服务开发**
- 2. **单页应用(SPA)后端**
- 3. **服务端渲染(SSR)**
- 4. **微服务架构**
- **4. 基本用法**
- **安装 Express**
- **创建基础服务器**
- **使用模板引擎(EJS 示例)**
- 1. 安装 EJS:
- 2. 设置模板引擎并渲染视图:
- 3. 模板文件 `views/index.ejs`:
- **5. 中间件示例**
- - **静态文件服务**
- - **错误处理中间件**
- **6. 总结**
1. 定义
Express 是一个基于 Node.js 的轻量级、灵活的 Web 应用框架,旨在为 Web 和移动应用程序提供一组强大的功能。它通过模块化设计和中间件机制,简化了 HTTP 服务器的开发流程,是 Node.js 生态中最流行的后端框架之一。
2. 核心特点
- 轻量灵活
核心功能精简(仅封装基础 HTTP 模块),不强制约束项目结构,开发者可自由组合中间件(如日志、认证、数据解析等)。
- 中间件机制
支持模块化的中间件,用于处理请求和响应。中间件可以是函数、路由处理程序或其他中间件,实现功能的灵活扩展。
- 路由系统
提供简洁的路由定义语法,支持 RESTful API 设计,可定义精确的 URL 路径与 HTTP 方法映射。
- 高性能
基于 Node.js 的非阻塞 I/O 模型,适合高并发场景。
- 模板引擎支持
集成多种模板引擎(如 EJS、Pug、Handlebars),动态渲染 HTML 页面。
- 社区与生态
拥有庞大的开发者社区和丰富的第三方中间件(如 express-session
、passport.js
),问题解决便捷。
3. 适用场景
1. API 服务开发
快速构建 RESTful 或 GraphQL 接口,搭配 MongoDB/MySQL 等数据库提供数据支持。
2. 单页应用(SPA)后端
为 Vue/React 等前端框架提供数据接口,配合 JWT 实现用户认证。
3. 服务端渲染(SSR)
集成模板引擎动态生成 HTML 页面(如电商网站首页)。
4. 微服务架构
作为轻量级服务单元,与其他微服务通过 HTTP/gRPC 通信。
4. 基本用法
安装 Express
npm install express
创建基础服务器
const express = require('express');
const app = express();
const port = 3000;// 中间件示例:解析 JSON 请求体
app.use(express.json());// 路由示例:GET 请求
app.get('/', (req, res) => {res.send('Hello, Express!');
});// 启动服务器
app.listen(port, () => {console.log(`Server running at http://localhost:${port}`);
});
使用模板引擎(EJS 示例)
1. 安装 EJS:
npm install ejs
2. 设置模板引擎并渲染视图:
app.set('view engine', 'ejs'); // 指定模板引擎app.get('/', (req, res) => {const data = { name: 'John' };res.render('index', data); // 渲染 views/index.ejs 模板
});
3. 模板文件 views/index.ejs
:
<!DOCTYPE html>
<html>
<head><title>Express App</title>
</head>
<body><h1>Hello <%= name %></h1>
</body>
</html>
5. 中间件示例
- 静态文件服务
app.use(express.static('public')); // 提供 public 目录下的静态文件
- 错误处理中间件
app.use((err, req, res, next) => {console.error(err.stack);res.status(500).send('Something broke!');
});
6. 总结
Express 框架凭借其 轻量级、灵活性和强大的中间件生态,成为 Node.js 开发的首选工具。无论是构建 API、SSR 页面还是微服务,Express 都能通过简洁的语法和丰富的插件快速实现需求。开发者可根据项目需求自由选择中间件和模板引擎,充分发挥其模块化设计的优势。