Express
Express 中文网
本文仅用于学习记录,不存在任何商业用途,如侵删
文章目录
- Express
- 6 指南 - 路由
- 6.3 路线路径 Route paths
6 指南 - 路由
6.3 路线路径 Route paths
【这翻译得…生怕国人看懂】
路由路径与请求方法相结合,定义了可以发出请求的端点。
路由路径可以是字符串、字符串模式或正则表达式。
字符?
、+
、*
和()
是其正则表达式对应项的子集。
连字符 ( -
) 和点 ( .
) 由基于字符串的路径逐字解释。
如果您需要$
在路径字符串中使用美元字符 ( ),请将其转义后包含在([
and])
中。例如,“ /data/$book
”处的请求的路径字符串将是“ /data/([\$])book
”。
Express 使用path-to-regexp来匹配路由路径;有关定义路由路径的所有可能性,请参阅 path-to-regexp 文档。
Express Route Tester是一个用于测试基本 Express 路由的便捷工具,尽管它不支持模式匹配。
这个不错
注意:查询字符串不是路由路径的一部分。
【一些栗子】
① 此路由路径将匹配对根路由的请求,/
:
app.get('/', function (req, res) {
res.send('root')
})
② 此路由路径将匹配到 的请求/about
:
app.get('/about', function (req, res) {
res.send('about')
})
③ 此路由路径将匹配到 的请求/random.text
。
以下是一些基于字符串模式的路由路径示例。
【1】此路由路径将匹配acd
和abcd
:
app.get('/ab?cd', function (req, res) {
res.send('ab?cd')
})
【2】此路由路径将匹配abcd
、abbcd
、abbbcd
等。
app.get('/ab+cd', function (req, res) {
res.send('ab+cd')
})
【3】此路由路径将匹配abcd
、abxcd
、abRANDOMcd
、ab123cd
等。
app.get('/ab*cd', function (req, res) {
res.send('ab*cd')
})
【4】此路由路径将匹配/abe
和/abcde
。
app.get('/ab(cd)?e', function (req, res) {
res.send('ab(cd)?e')
})
cd可有可没有
基于正则表达式的路由路径示例:
【1】此路由路径将匹配其中带有“a”的任何内容。
app.get(/a/, function (req, res) {
res.send('/a/')
})
此路由路径将匹配butterfly
and dragonfly
,但不匹配butterflyman
, dragonflyman
,依此类推。【正则表达式】
app.get(/.*fly$/, function (req, res) {
res.send('/.*fly$/')
})
【没毛病】