快递中的错误路由.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.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 

您可以在之前定义第二条路线,然后让它先尝试一下。但我不能 100% 确定打赌它会永远有效是安全的。

就个人而言,我会重命名路由,或者更确切地说是从普通的 get 参数中获取限制参数,即:url/billdetails/lastinvoices/1?limit=1。因此,第二条路由将定义为:
/billdetails/lastinvoices/:number

相关内容

  • 没有找到相关文章

最新更新