MongoDB,Nodejs路由顺序

时间:2018-09-08 12:50:47

标签: mongodb mongoose

我的路线有问题。它们可以工作,但是只有代码中的第一个。下面的代码使我可以通过ID而不是注册号获得票证。如果我将第二条路线放在第一条路线之上,反之亦然。

该如何解决?

//Get a ticket by ID

app.get('/tickets/:_id', function(req, res){
    Ticket.getTicketById(req.params._id, function(err, ticket){
        if(err){
            throw err;
        }
        res.json(ticket);
    });
});

//Get a ticket by registration number

app.get('/tickets/:vehRegistration', function(req, res){
    Ticket.getTicketByReg(req.params.vehRegistration, function(err, ticket){
        if(err){
            throw err;
        }
        res.json(ticket);
    });
});

1 个答案:

答案 0 :(得分:1)

您已经两次编写了相同的API路径。 :param_name不能用于区分两个不同的路径。尝试

//Get a ticket by ID

app.get('/tickets/byid/:_id', function(req, res) {
    Ticket.getTicketById(req.params._id, function(err, ticket) {
        if (err) {
            throw err;
        }
        res.json(ticket);
    });
});

//Get a ticket by registration number

app.get('/tickets/byreg/:vehRegistration', function(req, res) {
    Ticket.getTicketByReg(req.params.vehRegistration, function(err, ticket) {
        if (err) {
            throw err;
        }
        res.json(ticket);
    });
});