使用参数在 NodeJS 中获取 Express Route URL
Get Express Route URL in NodeJS with parameters
我在 Express 4.x 中创建的应用程序有问题,我有一个身份验证中间件正在检查调用的路由,我想获取不带参数的路由...
示例:
我声明了这条路线:/authentication/newPassword/:token
所以我想知道 request.path 是否与这条特定路线匹配...
这是我的 url : /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
所以我在寻找不同的变量:
req.path // /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
req.originalUrl // /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
req.url // /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
req.pathname // undefined
我在 google 上看到有人回答 req.headers 的使用,其中 .refers 知道路径,但我的表达应用是 API 并且它被其他应用程序在其他 URL 上调用,因此引荐来源与好的 url
不匹配
我使用正则表达式找到了解决问题的方法,如下所示:
const pathOk = /\/authenticate\/newPassword\/.+/;
if(pathOk.test(req.path)) { //Continue the middleware ...
所以我的问题很简单,Express 或 Node 中是否有类似的东西:
if (req.{something like path} == '/authentication/newPassword/:token') {
感谢您的回答。
Express 使用 path-to-regexp 匹配路由路径。
使用此模块,您可以根据路由字符串自动创建正则表达式。
var pathToRegexp = require('path-to-regexp')
var re = pathToRegexp('/authentication/newPassword/:token')
if(re.test(req.path)) { //...
或者在一个班轮中:
if (require('path-to-regexp')('/authentication/newPassword/:token').test(req.path) { //...
我在 Express 4.x 中创建的应用程序有问题,我有一个身份验证中间件正在检查调用的路由,我想获取不带参数的路由...
示例:
我声明了这条路线:/authentication/newPassword/:token
所以我想知道 request.path 是否与这条特定路线匹配...
这是我的 url : /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
所以我在寻找不同的变量:
req.path // /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
req.originalUrl // /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
req.url // /authenticate/newPassword/XRlIjoiMjAxOC0wOC0xM1QwOTNzo1Mi43ODBaIn0=
req.pathname // undefined
我在 google 上看到有人回答 req.headers 的使用,其中 .refers 知道路径,但我的表达应用是 API 并且它被其他应用程序在其他 URL 上调用,因此引荐来源与好的 url
不匹配我使用正则表达式找到了解决问题的方法,如下所示:
const pathOk = /\/authenticate\/newPassword\/.+/;
if(pathOk.test(req.path)) { //Continue the middleware ...
所以我的问题很简单,Express 或 Node 中是否有类似的东西:
if (req.{something like path} == '/authentication/newPassword/:token') {
感谢您的回答。
Express 使用 path-to-regexp 匹配路由路径。
使用此模块,您可以根据路由字符串自动创建正则表达式。
var pathToRegexp = require('path-to-regexp')
var re = pathToRegexp('/authentication/newPassword/:token')
if(re.test(req.path)) { //...
或者在一个班轮中:
if (require('path-to-regexp')('/authentication/newPassword/:token').test(req.path) { //...