0
votes

Comment emballer des applications angulaires (front-end) et nœud.js (serveur) ensemble

Je construis une application frontale angulaire 8 et une application Web nœud.js utilisant un cadre express pour servir de backend de l'application. L'application Web Express-Server côté serveur exposera une API de repos, qui sera consommée par l'application angulaire, ce qui peut à son tour effectuer des appels HTTP aux services externes.

Pour des raisons spécifiques, j'ai besoin de distribuer les deux applications ensemble. Je souhaite également gérer le développement des deux applications en tant que projet unique. J'ai cherché de bonnes pratiques en ligne et j'ai vu plusieurs approches, telles que:

  • Servez l'application angulaire presque comme un ensemble statique de fichiers dans un répertoire de l'application Web Node.js
  • Utilisez un package comme simultanément pour exécuter les applications angulaires et nœud.js simultanément, en définissant un script dans le fichier package.json .

    J'imagine qu'il existe de multiples façons d'y parvenir, et j'espère que quelqu'un peut partager une approche sur un chemin bien trodernel, en utilisant la même pile ou la même pile similaire.

    Mise à jour 21 octobre 2019 Je veux fournir un contexte sur mes exigences spécifiques. Je ne prévois pas d'héberger cela sur un serveur externe. En fin de compte, mon objectif est de créer une application électronique qui encapsulera le front-end et l'application Web. Je prototypage actuellement ceci pour le développement et l'exécution locaux et la distribution à quelques utilisateurs pour examen.


0 commentaires

3 Réponses :


2
votes

Lors du déploiement d'une application angulaire, il doit être livré sous forme de fichiers d'actifs statiques (HTML, JS, CSS-ou BUndles), puis servi par un serveur Web régulier. Donc, votre première approche ressemble à bien. Lors de l'accès à votre propre backend, vous n'avez pas à vous soucier des problèmes de CORS puisque les demandes seront identiques.

La deuxième idée semble que vous souhaitiez utiliser le serveur de développement CLI angulaire, ce qui n'est pas une bonne idée de production. Donc, je ne vais pas aller de la sorte.

Comme alternative, vous pouvez utiliser des conteneurs et fournir un conteneur angulaire pour le frontage (F.e. à l'aide de NGinx pour servir les actifs) et un deuxième conteneur pour l'application de nœud. Celles-ci pourraient être intégrées à l'aide d'un proxy inverse correctement configuré ou déployé sur Kubettes sous forme de pod avec une entrée à l'avant (qui est un proxy inverse après tout).


3 commentaires

Quelle est la meilleure façon de procéder à la première approche? J'ai vu plusieurs formes et j'espère être dirigé vers les meilleures pratiques moyen de la mettre en œuvre. Cela implique des serveurs de fichiers statiques / actifs (tels que des images, CSS, JS.), Puis des fichiers d'application. Également besoin de configurer une configuration proxy vraisemblablement pour fonctionner autour de Cors


Cela dépend vraiment de votre environnement et de votre infrastructure (construire). L'approche la plus simple consiste à utiliser la CLI angulaire, à créer une production de production et à servir le résultat en tant qu'actifs statiques de votre noeud / backend Express


Comment puis-je mettre en œuvre la première approche? La recherche donne des exemples compliqués, je cherche donc à voir s'il existe un moyen spécifique de servir une application angulaire dans un projet App Express.



1
votes

L'ensemble d'outils NRWL NX serait parfait pour cela. Il est utilisé dans les entreprises pour des configurations mono-repo - notamment angulaires et express / nstjs. Voici un article qui agit comme un guide pour se lever et courir avec elle

https: // blog .nrwl.io / bâtiment-pile-applications-applications-utilisant-angular-cli-and-nx-5eff205248f1


1 commentaires

Ceci est très utile de savoir, pour des projets plus complexes. Merci! À ce stade, je tiens à garder les choses aussi simples que possible, étant donné que je sais que ce sera un seul projet angulaire soutenu par une seule application Web express.



0
votes

Si Google Cloud Platform est une option, créez un projet et des applications Backend et Backend.

  1. hébergement en firebase
    • Utilisez l'hébergement Firebase pour une application angulaire
    • Configuration d'une réécriture d'hébergement pour rediriger les itinéraires "API" sur le cloud Run
    • Google Cloud Run
      • Utilisez Cloud Run pour servir l'application Nodejs

2 commentaires

L'hébergement FireBase de l'application angulaire est-il similaire à l'hébergement d'un site Web statique sur S3 (AWS)? Je ne prévois pas d'héberger cela sur un serveur externe. En fin de compte, le plan consiste à créer une application électronique qui encapsulera l'extrémité avant et l'application Web. Je suis actuellement prototypage de cela pour le développement et l'exécution locaux et la distribution de quelques utilisateurs à examiner.


Oui, c'est un hébergement statique pour les applications Web. Ok je l'obtiens, si c'est une application électronique, cette option n'est pas valide.