Express 路由

devtools/2025/2/12 14:59:48/

在构建 Web 应用程序时,路由是处理不同 URL 请求的核心机制。Express.js 是 Node.js 上最流行的轻量级框架之一,它简化了路由的定义和管理过程。本文将深入介绍如何使用 Express 进行路由配置,帮助你快速上手并掌握其核心概念。

什么是路由?

路由是指根据 HTTP 请求的 URL、方法(GET、POST 等)等信息来确定如何响应客户端请求的过程。在 Express 中,路由由请求方法、请求路径以及处理函数组成。通过设置不同的路由规则,可以实现对网站或 API 的精细化控制。

安装 Express

首先确保你的开发环境中已安装 Node.js 和 npm。接下来,可以通过以下命令创建一个新的项目并安装 Express:

mkdir myapp
cd myapp
npm init -y
npm install express --save

基本路由

设置基本路由

下面是一个简单的例子,展示了如何为不同的 HTTP 方法定义路由:

const express = require('express');
const app = express();// GET 请求
app.get('/', (req, res) => {res.send('Hello World!');
});// POST 请求
app.post('/submit', (req, res) => {res.send('Received a POST request at /submit');
});// PUT 请求
app.put('/update', (req, res) => {res.send('Received a PUT request at /update');
});// DELETE 请求
app.delete('/delete', (req, res) => {res.send('Received a DELETE request at /delete');
});const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));

动态路由

除了静态路径外,Express 还支持动态路径参数。例如,如果你想要获取用户 ID 来显示特定用户的资料页,你可以这样做:

app.get('/user/:id', (req, res) => {const userId = req.params.id;res.send(`User ID: ${userId}`);
});

访问 /user/123 将返回 User ID: 123

路由中间件

中间件是在请求到达最终的路由处理器之前执行的函数。它们可用于执行各种任务,如日志记录、身份验证等。

使用中间件

app.use((req, res, next) => {console.log(`${req.method} request for '${req.url}'`);next();
});app.get('/example', (req, res) => {res.send('This is an example route.');
});

上述代码会在每次请求到来时打印出请求的方法和 URL。

错误处理中间件

错误处理中间件需要四个参数,按照 (err, req, res, next) 的顺序排列。

app.use((err, req, res, next) => {console.error(err.stack);res.status(500).send('Something broke!');
});

路由模块化

随着应用的增长,保持路由逻辑的整洁变得尤为重要。Express 支持将路由分离到单独的文件中,这有助于提高代码的可维护性。

创建路由文件

创建一个名为 users.js 的文件,并添加如下内容:

const express = require('express');
const router = express.Router();router.get('/', (req, res) => {res.send('List of users');
});router.get('/:id', (req, res) => {res.send(`User with ID ${req.params.id}`);
});module.exports = router;

然后,在主文件中导入并使用这个路由模块:

const userRoutes = require('./users');
app.use('/users', userRoutes);

现在,当你访问 /users/users/123 时,相应的路由处理函数会被调用。

结语

希望这篇文章能够帮助你在 Express 路由方面打下坚实的基础。如果你有任何问题或者想要分享你的经验,请留言交流!


http://www.ppmy.cn/devtools/158235.html

相关文章

重庆西站公路桥梁自动化监测

1.项目概述 重庆西站属于渝黔铁路的配套工程,是承担兰渝、川黔、渝昆等多条铁路的特级客运站,未来重庆铁路三大客运站之一。作为我国西部地区规模最大的火车站、重庆西站于2014年在沙坪坝区上桥开工建设,该站东临内环高速,西靠中梁山&#x…

《qt open3d中添加最远点采样》

qt open3d中添加最远点采样 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionFilterFarthestDownSample_triggered();void MainWindow::on_

二分算法篇:二分答案法的巧妙应用

二分算法篇:二分答案法的巧妙应用 那么看到二分这两个字想必我们一定非常熟悉,那么在大学期间的c语言的教学中会专门讲解二分查找,那么我们来简单回顾一下二分查找算法,我们知道二分查找是在一个有序的序列中寻找一个数在这个序列…

跨平台开发利器:UniApp 全面解析与实践指南

文章目录 一、UniApp 是什么?核心优势: 二、核心特性解析1. 跨端原理2. 技术架构3. 主要功能特性 三、开发环境搭建1. 必备工具2. 项目创建3. 目录结构 四、开发实践指南1. 页面开发示例2. 跨端API调用3. 条件编译实战 五、性能优化技巧1. 启动速度优化2…

基于Spring Boot+VUE的个人驾校预约管理系统设计与实现(LW+源码+)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

对甲酚——自闭症辅助诊断和干预的关键指标

​ 在谷禾的检测实践中发现很多自闭症和情绪障碍人群的对甲酚含量很高&#xff0c;并且结合现有文献&#xff0c;有充分的证据认为对甲酚与自闭症存在相关性。 <来源&#xff1a;谷禾健康自闭症儿童检测示例> 什么是对甲酚&#xff1f;对甲酚是人体中特定细菌(例如艰难梭…

C++14 新特性解析

C++14 作为 C++11 的增量更新,主要目标是完善和扩展 C++11 的特性,提升开发效率和代码灵活性。以下是 C++14 的核心特性解析: 1. 通用 Lambda 表达式(Generic Lambdas) 说明:Lambda 参数支持 auto 关键字,使 Lambda 成为隐式的函数模板。示例:auto add = [](auto a, au…

STM32+Proteus+DS18B20数码管仿真实验

1. 实验准备 硬件方面&#xff1a; 了解 STM32 单片机的基本原理和使用方法&#xff0c;本实验可选用常见的 STM32F103 系列。熟悉 DS18B20 温度传感器的工作原理和通信协议&#xff08;单总线协议&#xff09;。数码管可选用共阴极或共阳极数码管&#xff0c;用于显示温度值。…