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的自然数
  • 1到3种页面类型可以正常工作。第四是投掷:

    无法获取/929/233/3027

    以下是代码:

    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);