Node.js NodeJs/Expressjs,一个数组中的多个路由路径,如何获取哪个路径被装载?

Node.js NodeJs/Expressjs,一个数组中的多个路由路径,如何获取哪个路径被装载?,node.js,express,routing,Node.js,Express,Routing,假设来自浏览器的请求如下 第一个Url条件应该是什么?您可以使用或: console.log(请求源代码) 在您的情况下(尝试): 或(更干净): 第二种方式更常见 像这样的东西可能有用 var express = require('express'); var exampleRouter = express.Router(); projectRouter.get('/example/cat/:id/subcat/:subId',function(req, res){ //

假设来自浏览器的请求如下

第一个Url条件应该是什么?

您可以使用或:

console.log(请求源代码)

在您的情况下(尝试):

或(更干净):


第二种方式更常见

像这样的东西可能有用

var express = require('express');    
var exampleRouter = express.Router();

projectRouter.get('/example/cat/:id/subcat/:subId',function(req, res){
    // It should enter here do something..    
});

projectRouter.get('/example/:id/:subId/',function(req, res){
    // Second route
});

可能重复的originalUrl和path将给出确切的请求路径,而不是路由器阵列中定义的路径。假设来自浏览器的请求类似于这个projectRouter.get(['/example/cat/:id/subcat/:subId','/example/:id/:subId/'',]),函数(req,res){如果(第一个url){//它应该在这里输入/*做点什么..*/}如果(第二个url){/*做点什么..*/});同意。但我的要求是避免在两条路线上重复常见的事情。所以我想把两条路线合并成一条,我也需要做一些不同的事情。我的疑问是,如果expressjs提供了一个从一个数组路由多条路径的选项,为什么它不能给出选择了哪一条路径?这可能可行,但我正在寻找一个没有正则表达式的答案。我的疑问是,如果expressjs提供了一个从一个数组路由多条路径的选项,为什么它不能给出选择了哪一条路径呢?正则表达式将修剪任何开始/结尾的斜杠。它也可以在没有正则表达式的情况下工作。
var express = require('express');    
var exampleRouter = express.Router();

projectRouter.get([
    '/example/cat/:id/subcat/:subId', /*1st URL*/
    '/example/:id/:subId/', /*2nd URL*/
    ],function(req, res){

    if(req.url == "/example/cat/:id/subcat/:subId"){ 
        // It should enter here do something..*/
    } else if(req.url == "/example/:id/:subId/"){
        // do something..
    }    
});
var express = require('express');    
var exampleRouter = express.Router();

projectRouter.get('/example/cat/:id/subcat/:subId',function(req, res){
    // It should enter here do something..    
});

projectRouter.get('/example/:id/:subId/',function(req, res){
    // Second route
});
projectRouter.get([
    '/example/cat/:id/subcat/:subId', /*1st URL*/
    '/example/:id/:subId/', /*2nd URL*/
    ],function(req, res){

    var param = req.url.replace(/^\/|\/$/g, '').split('/');

    if(param[1] == "cat" && param[3] == "subcat"){ 

        // It should enter here do something..*/

    } else {

        // do something..

    }    
});