当前位置: 首页 > news >正文

Express 路由路径正则详解

在 Express 中,使用正则表达式可以定义更加灵活和复杂的路由。

1. 基本语法

在 Express 中,路由路径可以是一个字符串、字符串模式或者正则表达式。当使用正则表达式时,将其作为路由路径传入 `app.METHOD()` 方法(`METHOD` 可以是 `get`、`post` 等 HTTP 方法)。

const express = require("express");

const app = express();

// 精确匹配路径 `/test`

app.get(/^\/test$/, (req, res) => {

  res.send("This route matches the exact path /test");

});

const port = 3000;

app.listen(port, () => {

  console.log(`Server running on port ${port}`);

});

2. 匹配路径中的数字

// `\d+` 表示匹配一个或多个数字

app.get(/^\/articles\/\d+$/, (req, res) => {

  res.send("This route matches paths like /articles/123");

});

3. 匹配路径中的字母

`[a-zA-Z]` 表示匹配任意一个大小写字母,`+` 表示匹配一个或多个。

app.get(/^\/books\/[a-zA-Z]+$/, (req, res) => {

  res.send("This route matches paths like /books/abc");

});

4. 结合路由参数和正则表达式

可以在路由参数中使用正则表达式,对参数的值进行更精确的限制。

app.get("/products/:productId([0-9a-f]{24})", (req, res) => {

  const productId = req.params.productId;

  res.send(`Product ID: ${productId}`);

});

5. 匹配多个路径模式

使用正则表达式的分支(`|`)可以匹配多个不同但有相似模式的路径。

app.get(/^\/(about|contact|services)$/, (req, res) => {

  const path = req.path;

  res.send(`You visited the ${path} page`);

});

6. 匹配中文路径

如果要匹配包含中文的路径,可以使用 Unicode 编码范围来定义正则表达式。

app.get(/^\/中文路径\/[\u4e00-\u9fa5]+$/, (req, res) => {

  res.send("This route matches Chinese paths");

});

相关文章:

  • Python随笔
  • 大模型炼丹基础--GPU内存计算
  • Redis c++安装使用教程(redis-plus-plus)
  • LabVIEW利用CANopen的Batch SDO写入
  • 乘积最大 之 连续与非联系子数组
  • Linux上Scapy完全指南:从入门到实战攻防
  • 基于SpringBoot实现的大学社团平台系统实现功能六
  • 【16届蓝桥杯寒假刷题营】第2期DAY1I
  • Visionpro 齿轮测量
  • frp与云服务器内网穿透
  • 网上购物|基于SprinBoot+vue的网上购物系统(源码+数据库+文档)
  • 大模型应用开发时如何调试提示词?
  • 深入解析504网关超时错误:服务器通信故障的诊断与解决
  • 每日复盘20250216
  • TensorFlow项目GPU运行 安装步骤
  • ThreadLocal详解
  • 2.buuctf [CISCN 2019 初赛]Love Math
  • Httprint 指纹识别技术:网络安全的关键洞察
  • 【三十三周】文献阅读:OpenPose: 使用部分亲和场的实时多人2D姿态估计
  • 【Spring Boot】网页五子棋项目中遇到的困难及解决方法
  • 上海天文馆走进徐家汇书院,XR沉浸式天文科普体验再推力作
  • 雅典卫城上空现“巨鞋”形状无人机群,希腊下令彻查
  • 澎湃与七猫联合启动百万奖金征文,赋能非虚构与现实题材创作
  • 银行积分大幅贬值遭质疑,涉及工行、中行、农行等
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 以军向也门3个港口的居民发布撤离令