ExpressJS - Creación de URL
Ahora podemos definir rutas, pero son estáticas o fijas. Para utilizar las rutas dinámicas, DEBEMOS proporcionar diferentes tipos de rutas. El uso de rutas dinámicas nos permite pasar parámetros y procesar en base a ellos.
A continuación se muestra un ejemplo de ruta dinámica:
var express = require('express');
var app = express();
app.get('/:id', function(req, res){
res.send('The id you specified is ' + req.params.id);
});
app.listen(3000);
Para probar esto, vaya a http://localhost:3000/123. Se mostrará la siguiente respuesta.

Puede reemplazar '123' en la URL con cualquier otra cosa y el cambio se reflejará en la respuesta. Un ejemplo más complejo de lo anterior es:
var express = require('express');
var app = express();
app.get('/things/:name/:id', function(req, res) {
res.send('id: ' + req.params.id + ' and name: ' + req.params.name);
});
app.listen(3000);
Para probar el código anterior, vaya a http://localhost:3000/things/tutorialspoint/12345.

Puedes usar el req.paramsobject para acceder a todos los parámetros que pasa en la url. Tenga en cuenta que los 2 anteriores son caminos diferentes. Nunca se superpondrán. Además, si desea ejecutar código cuando obtenga'/things' entonces necesitas definirlo por separado.
Rutas con patrones coincidentes
También puedes usar regexpara restringir la coincidencia de parámetros de URL. Supongamos que necesita elidpara ser un número de 5 dígitos. Puede utilizar la siguiente definición de ruta:
var express = require('express');
var app = express();
app.get('/things/:id([0-9]{5})', function(req, res){
res.send('id: ' + req.params.id);
});
app.listen(3000);
Tenga en cuenta que esto only coincidir con las solicitudes que tienen una longitud de 5 dígitos id. Puede utilizar expresiones regulares más complejas para hacer coincidir / validar sus rutas. Si ninguna de sus rutas coincide con la solicitud, obtendrá un"Cannot GET <your-request-route>"mensaje como respuesta. Este mensaje puede ser reemplazado por una página 404 no encontrada usando esta ruta simple:
var express = require('express');
var app = express();
//Other routes here
app.get('*', function(req, res){
res.send('Sorry, this is an invalid URL.');
});
app.listen(3000);
Important - Esto debe colocarse después de todas sus rutas, ya que Express coincide con las rutas de principio a fin de la index.js archivo, incluidos los enrutadores externos necesarios.
Por ejemplo, si definimos las mismas rutas que arriba, al solicitar con una URL válida, se muestra el siguiente resultado. -

Mientras que para una solicitud de URL incorrecta, se muestra el siguiente resultado.
