express路由的几种匹配模式

什么是路由?

路由是指如何定义的端点(URIs)以及如何响应客户端的请求。

结构

路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成,它的结构如下: app.METHOD(path, [callback…], callback), app 是 express 对象的一个实例, METHOD 是一个 HTTP 请求方法, path 是服务器上的路径, callback 是当路由匹配时要执行的函数。

下边是一个基本的路由示例:

	const express = require('express');
	const app = express();
	
	app.get("/",(req,res)=>{
		res.send(hello world);
	})

路由路径和请求方法一起定义了请求的端点,它可以是字符串、字符串模式或者正则表达式。

匹配根路径的请求
app.get('/', function (req, res) {
  res.send('root');
});
匹配 /about 路径的请求
app.get('/about', function (req, res) {
  res.send('about');
});
匹配 /random.text 路径的请求
app.get('/random.text', function (req, res) {
  res.send('random.text');
});
使用字符串模式的路由路径
// 匹配 acd 和 abcd
app.get('/ab?cd', function(req, res) {
  res.send('ab?cd');
});
// 匹配 /ab/******
app.get('/ab/:id', function(req, res) {
  const { id } = req.params;
  res.send('aaaaaaa');
});
// 匹配 abcd、abbcd、abbbcd等
app.get('/ab+cd', function(req, res) {
  res.send('ab+cd');
});
// 匹配 abcd、abxcd、abRABDOMcd、ab123cd等
app.get('/ab*cd', function(req, res) {
  res.send('ab*cd');
});
// 匹配 /abcde、/abcdcdcdcded等
app.get('/ab(cd)+e', function(req, res) {
 res.send('ab(cd)?e');
});
使用正则表达式的路由路径
// 匹配任何路径中含有 a 的路径:
app.get(/a/, function(req, res) {
  res.send('/a/');
});

// 匹配 butterfly、dragonfly,不匹配 butterflyman、dragonfly man等
app.get(/.*fly$/, function(req, res) {
  res.send('/.*fly$/');
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值