express简介
2024年1月12日...大约 3 分钟
express简介
主要特点和功能介绍:
1. 核心特性
- 轻量级:Express 是一个最小化的框架,核心功能简洁,但可以通过中间件扩展。
- 路由系统:提供了强大的路由功能,支持定义 HTTP 请求(GET、POST、PUT、DELETE 等)的处理逻辑。
- 中间件支持:通过中间件机制,可以轻松处理请求和响应,例如解析请求体、处理 Cookie、会话管理等。
- 模板引擎支持:支持多种模板引擎(如 Pug、EJS、Handlebars 等),方便渲染动态 HTML 页面。
- 静态文件服务:内置
express.static
中间件,可以轻松托管静态文件(如 CSS、JavaScript、图片等)。 - 错误处理:提供了统一的错误处理机制,方便捕获和处理异常。
2. 安装
可以通过 pnpm 安装 Express 4.21.2:
pnpm add express@4.21.2 // 默认安装dependencies
3. 基本用法
以下是一个简单的 Express 应用示例:
const express = require('express');
const app = express();
const port = 3000;
// 定义路由
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// 启动服务器
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
4. 主要功能
路由
Express 支持定义多种 HTTP 方法的路由:
app.get('/users', (req, res) => {
res.send('Get a list of users');
});
app.post('/users', (req, res) => {
res.send('Create a new user');
});
app.put('/users/:id', (req, res) => {
res.send(`Update user with ID ${req.params.id}`);
});
app.delete('/users/:id', (req, res) => {
res.send(`Delete user with ID ${req.params.id}`);
});
中间件
Express 的核心功能之一是中间件。可以通过 app.use()
添加中间件:
// 日志中间件
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
});
// 解析 JSON 请求体
app.use(express.json());
// 解析 URL 编码的请求体
app.use(express.urlencoded({ extended: true }));
静态文件服务
使用 express.static
托管静态文件:
app.use(express.static('public'));
模板引擎
支持多种模板引擎,例如 EJS:(不用)
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
res.render('index', { title: 'Express App' });
});
错误处理
统一的错误处理机制:
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
6. 常用中间件
Express 4.x 推荐使用以下常用中间件:
body-parser
:解析请求体(JSON、URL-encoded 等)。cookie-parser
:解析 Cookie。morgan
:HTTP 请求日志记录。cors
:处理跨域请求。helmet
:增强 HTTP 安全性。
安装示例:
pnpm install body-parser cookie-parser morgan cors helmet
使用示例:
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const morgan = require('morgan');
const cors = require('cors');
const helmet = require('helmet');
app.use(bodyParser.json());
app.use(cookieParser());
app.use(morgan('dev'));
app.use(cors());
app.use(helmet());
7. 适用场景
- 构建 RESTful API:Express 是构建 API 的理想选择,支持 JSON、XML 等多种数据格式。
- 单页应用(SPA)后端:可以作为单页应用的后端服务,提供数据接口。
- 静态网站托管:通过
express.static
快速托管静态网站。 - 微服务架构:适合作为微服务架构中的单个服务。
8. 总结
Express真的非常好用,我个人非常喜欢!它特别适合用来搭建各种 Web 应用和 API,尤其是中小型项目,用起来特别顺手。它的中间件和路由系统设计得很灵活,开发效率很高,想加什么功能都很方便。社区里也有很多插件和工具,几乎什么需求都能找到现成的解决方案。如果你想要一个轻量、高性能的 Node.js Web 框架,Express 绝对是首选!用它来做一些小项目或者微服务特别合适,简单直接,不用搞得太复杂。
Powered by Waline v3.4.1