Node.js “快速应用程序获取模式正在抛出”;无法获取;
我有以下类型的页面:Node.js “快速应用程序获取模式正在抛出”;无法获取;,node.js,regex,typescript,express,Node.js,Regex,Typescript,Express,我有以下类型的页面: 根目录(/) 今天的章节(/929或/929/)最终重定向到/929/,其中是介于1到929之间的自然数 章节(/929/或/929/),其中是介于1到929之间的自然数 关于章节(/929/或/929//)的文章,其中是介于1到929之间的自然数,是类似于1,2…99999999的自然数 1到3种页面类型可以正常工作。第四是投掷: 无法获取/929/233/3027 以下是代码: app.get("/", rootMiddleware); app.get("/929[/]
/
)/929
或/929/
)最终重定向到/929/
,其中
是介于1到929之间的自然数/929/
或/929/
),其中
是介于1到929之间的自然数/929/
或/929//
)的文章,其中
是介于1到929之间的自然数,是类似于1,2…99999999的自然数app.get("/", rootMiddleware);
app.get("/929[/]{0,1}", todaysChapterMiddleware);
app.get("/929/:chapter(([1-9]|[1-9][0-9]|[1-8][0-9]{2}|9[01][0-9]|92[0-9]))[/]{0,1}", chapterMiddleware);
app.get("/929/:chapter(([1-9]|[1-9][0-9]|[1-8][0-9]{2}|9[01][0-9]|92[0-9]))/:articleId((\d+))[/]{0,1}", articleMiddleware);
在app.js主文件中:
app.use("/",routesfile);
在路由文件中:
router.get('/929/<CHAPTER>',controller file)
router.get('/929/',控制器文件)
因为正则表达式通常是文本字符串的一部分,所以请确保使用附加反斜杠转义任何\字符,例如\\d+
因此,正确的第四条路线应该是:
app.get("/929/:chapter(([1-9]|[1-9][0-9]|[1-8][0-9]{2}|9[01][0-9]|92[0-9]))/:articleId((\\d+))[/]{0,1}", articleMiddleware);
app.get("/929/:chapter(([1-9]|[1-9][0-9]|[1-8][0-9]{2}|9[01][0-9]|92[0-9]))/:articleId((\\d+))[/]{0,1}", articleMiddleware);
添加\以退出\
所以
从
到
app.get("/929/:chapter(([1-9]|[1-9][0-9]|[1-8][0-9]{2}|9[01][0-9]|92[0-9]))/:articleId((\\d+))[/]{0,1}", articleMiddleware);