Como faço para que uma rota "/agenda/:id" coexista com uma rota "/agenda/tudo"? No caso que estou fazendo aqui, ele esta sempre roteando para "agenda/:id" entendendo que "tudo" é o valor de :id.
Como faço para que uma rota "/agenda/:id" coexista com uma rota "/agenda/tudo"? No caso que estou fazendo aqui, ele esta sempre roteando para "agenda/:id" entendendo que "tudo" é o valor de :id.
Suponho que esta espereando um numero no id, certo? Olhando na documentação da rota do express você pode usar expressão regular para ter maior controle do parâmetro, do seguinte modo:
app.get("/agenda/:id(\\d+)", function(req, res) {
res.send('agenda id: ' + req.params.qweid);
});
app.get("/agenda/tudo", function(req, res) {
res.send('TUDO');
});
A regex(expressão regular) \d+ significa que esperamos um numero \d e esperamos que tenha 1 ou mais carateres desse tipo, ou seja esperamos um ou mais digitos.
Foi utilizado \d+ (com duas contra barras) pois utilizando apenas uma, o express le \d como um caracter especial, como \n ou \t.
O problema que estou encontrando é que o meu ID é um hash (15sa54-dffds-d155d) e a expressão regular que funciona em qq testador de expressão regular não funciona quando aplico à rota.