路由路径与请求方法相结合,定义了可以发出请求的端点。路由路径可以是字符串、字符串模式或正则表达式。
字符 ?、+、* 和 () 是它们的正则表达式对应物的子集。连字符 (-) 和点 (.) 由基于字符串的路径逐字解释。
如果您需要在路径字符串中使用美元字符 (`
路由路径与请求方法相结合,定义了可以发出请求的端点。路由路径可以是字符串、字符串模式或正则表达式。
字符 ?、+、* 和 () 是它们的正则表达式对应物的子集。连字符 (-) 和点 (.) 由基于字符串的路径逐字解释。
),请将其包含在 ([ 和 ]) 中进行转义。例如,"/data/$book" 处请求的路径字符串将是 "/data/([\$])book"。
Express 使用 path-to-regexp 来匹配路由路径;有关定义路由路径的所有可能性,请参阅 path-to-regexp 文档。Express Route Tester 是一个用于测试基本 Express 路由的便捷工具,尽管它不支持模式匹配。
查询字符串不是路由路径的一部分。
以下是一些基于字符串的路由路径示例。
此路由路径将匹配对根路由 / 的请求。
app.get('/', (req, res) => {
res.send('root')
})
此路由路径将匹配对 /about 的请求。
app.get('/about', (req, res) => {
res.send('about')
})
此路由路径将匹配对 /random.text 的请求。
app.get('/random.text', (req, res) => {
res.send('random.text')
})
以下是一些基于字符串模式的路由路径示例。
此路由路径将匹配 acd 和 abcd。
app.get('/ab?cd', (req, res) => {
res.send('ab?cd')
})
此路由路径将匹配 abcd、abbcd、abbbcd 等。
app.get('/ab+cd', (req, res) => {
res.send('ab+cd')
})
此路由路径将匹配 abcd、abxcd、abRANDOMcd、ab123cd 等。
app.get('/ab*cd', (req, res) => {
res.send('ab*cd')
})
此路由路径将匹配 /abe 和 /abcde。
app.get('/ab(cd)?e', (req, res) => {
res.send('ab(cd)?e')
})
基于正则表达式的路由路径示例:
此路由路径将匹配其中带有 "a" 的任何内容。
app.get(/a/, (req, res) => {
res.send('/a/')
})
此路由路径将匹配 butterfly 和 dragonfly,但不匹配 butterflyman、dragonflyman 等。
app.get(/.*fly$/, (req, res) => {
res.send('/.*fly$/')
})