Javascript express.js中的错误路由

Javascript express.js中的错误路由,javascript,node.js,express,routing,async.js,Javascript,Node.js,Express,Routing,Async.js,我尝试使用以下筛选器转移包,但失败: 我已经使用express.js构建了路由: app.get('/billdetails/:year/:month/:phoneId', function (req, res, next) { var db = req.db; var year = req.params.year; var month = req.params.month; var phoneId = req.params.phoneId; async.

我尝试使用以下筛选器转移包,但失败: 我已经使用express.js构建了路由:

app.get('/billdetails/:year/:month/:phoneId', function (req, res, next) {
    var db = req.db;
    var year = req.params.year;
    var month = req.params.month;
    var phoneId = req.params.phoneId;
    async.parallel({...})

app.get('/billdetails/lastinvoices/:number/:limit', function (req, res, next) {
    var db = req.db;
    var number = req.params.number;
    var limit = req.params.limit;
    async.parallel({...})
因此,当我请求第一个URL时,一切正常,但当我尝试请求第二个路由时,我得到的响应与第一个相同

有人知道为什么会这样吗


问候并感谢您。

您的第一条路线与第二条路线采用相同数量的参数。 这意味着,当您请求第二条路由时,它将首先测试第一条路由,因为之前定义了它

这意味着,如果您通过以下请求请求路线2: url/billdetails/lastinvoices/12/123

您将使用以下参数路由到第一条路由:

year:    "lastinvoices"
month:   12
phoneId: 123 
您可以在此之前定义第二条路线,然后让它尝试第一条路线。但我不能百分之百肯定它是否会安全地打赌它会一直有效

就我个人而言,我会重命名路由,或者从一个普通的get参数获取limit参数,即:url/billdetails/lastinvoices/1?limit=1。 因此,第二条路线将被定义为: /账单明细/上次发票/:编号