Estoy creando un acortador de URL con NodeJS y Express en el backend y Angular en el frontend, que se implementa en un solo contenedor acoplable. La característica más importante (redireccionamiento de URL corta a URL larga) debe manejarse en la ruta base del backend. En el mejor de los casos, también me gustaría proporcionar la interfaz en la misma ruta.
Esta es una descripción general de alto nivel de mi backend:
import express = require("express"); const app = express(); ... app.get('/*', isOnline, express.static(path.join('./', 'frontend'), { maxAge: '1y' })); app.use('/', redirectRoutes); app.listen(port, () => console.log('API running on port ' + port));La carpeta frontend contiene la aplicación Angular construida (más importante, un index.html). No entiendo, por qué no funciona. Por lo que entendí, la interfaz debe entregarse si alguna ruta coincide con un archivo dentro de la carpeta de la interfaz (index.html).
De lo contrario, las rutas de redirección deberían tomar medidas.
Pero cada vez que abro una ruta de redireccionamiento (por ejemplo, example.com/abcdefgh), se mostrará la interfaz, que no tiene ninguna ruta abcdefgh.
Creo que la primera app.get('/*' tiene prioridad para cada ruta desde la raíz, por ejemplo /
Por lo general, las rutas API comenzarían app.use('/api' por este motivo
El orden es importante, así que pondrías primero el api