¿Cómo configurar Express y Node en un proyecto de Front-End solo Angular 2 existente?

Tengo una aplicación actual de Angular 2 solo para aplicaciones front-end que utiliza Angular-CLI y NPM. Quiero que los visitantes puedan enviarme correos electrónicos a través del formulario de contacto.

Para esto, obviamente necesito un back-end, express y un nodo, en el que no tengo experiencia en el uso.

Necesito integrar Express y node en mi aplicación, pero no sé cómo hacerlo correctamente.

He encontrado ESTA pregunta similar en SO pero no es relevante para mi situación.

Otros tutoriales solo muestran cómo hacer un andamio de una aplicación MEAN stack no integrar el backend después de que se haya construido el extremo frontal.

Lo que me gustaría saber :

  • ¿Cómo configuro mi aplicación Angular 2 para usar Express y node para el back-end?
  • ¿Cuáles son los archivos relevantes que necesito?
  • ¿Puedo hacer esto usando el Angular-CLI?

La mejor manera de configurar un proyecto que se construye usando angular-cli para usar un backend de nodejs / express es crear un proyecto express que sirva un directorio. En el proyecto de su cliente, si se ha creado usando angular-cli, debería poder escribir ng build y comstackrá todo en un directorio dist .

Desde allí, puede crear un servidor Express que sirva ese directorio dist así:

 app.get('*', (req, res) => { res.sendFile(path.join(__dirname, 'dist/index.html')); }); 

El servidor más simple que podrías construir probablemente sería algo como

 var express = require('express') var path = require('path'); var app = express() app.get('*', (req, res) => { res.sendFile(path.join(__dirname, 'dist/index.html')); }); app.listen(3000, function () { console.log('Example app listening on port 3000!') }); 

Esto interceptará todas las rutas y las redireccionará al archivo index.html en la carpeta dist/ creada.

Para obtener más información sobre cómo configurar esto y algunas configuraciones más avanzadas, echa un vistazo a estos enlaces:

Solo piense en la carpeta dist/ como archivos estáticos que se servirán a través de un servidor Express, y dado que el enrutamiento y todo se maneja a través de angular, estará configurado.