Rutas en Node
Rutas y redirección con NodeJS
Rutas
La recarga o la redirección de rutas en un proyecto creado en Angular y NodeJS puede devolver errores en un entorno de producción. Para ello existen distintas formas que permiten acceder a las rutas del frontend y también tener acceso a la api del proyecto. Una de estas formas es mediante urls amigables. Para crear estas urls amigables es necesario modificar el módulo app del backend añadiéndole una ruta estática y un método get que contiene un callback, situándose al final de las rutas, evitando interferir en las rutas que acceden a la api.
ruta estática:
app.use("/",express.static("client",{redirect : false}));
método get:
app.get('*',function(req,res,next){
res.sendFile(path.resolve('client/index.html'));
});
La ruta estática carga el contenido de client y con la propiedad redirect evitamos ningún tipo de redirección. El método get es necesario incluirlo al final descartando que no coincide con ninguna de las anteriores, así pues el código de abajo muestra un ejemplo de la sección de rutas de un proyecto:
//carga de rutas
var users = require("./routes/users");
var roles = require("./routes/roles");
//rutas
app.use("/",express.static("client",{redirect : false}));
app.use("/api",users);
app.use("/api",roles);
app.get('*',function(req,res,next){
res.sendFile(path.resolve('client/index.html'));
});
De esta forma se mantiene intacto el acceso a las rutas anteriores al método get y mediante el parámetro asterisco se indica que cualquier otra ruta que no se encuentre incluida antes, pasará por el callback y cargará las rutas correspondientes permitiendo recargar la página sin devolver ningún tipo de error. Por tanto, en el ejemplo de arriba, cualquier ruta que no venga precedida de api seguida de un usuario o seguida de un rol pasará por el callback del método get resolviendo la ruta.
Para poder comentar es necesario iniciar sesión