1
votes

Question de base First Node + application express + angulaire en production

Je crée ma première application app node express avec angular 7 sur le frontend à déployer en production. J'ai une question ci-dessous?

  1. Quelle structure de dossier est préférée, dois-je créer des projets pour nœud et projet angulaire ou même (server.js à la racine de projet angulaire et dossier de serveur pour créer un serveur express des dossiers)? Quelle est la solution préférée et je dois enregistrer le projet dans un dossier de svn.

  2. Dois-je utiliser babel et créer le code du serveur de nœuds avec es2015 ou continuer avec l'ancienne approche?


4 commentaires

De quel type d'architecture vous disposez, vos applications client et serveur sont-elles séparées?


Je construis le cadre et l'application angulaire sera toujours en cours d'exécution sur le serveur express uniquement.


Donc, tout comme l'API client et serveur est amorcé avec un processus de nœud unique?


oui, les API client et serveur sont amorcées avec un processus de nœud unique.


5 Réponses :


0
votes

Tout dépend de vous, ce que je fais, c'est que j'ai un répertoire séparé pour le projet Angular et Node

project 

|

client - Your anguar project 
server - Your Apis and server side coding (Only this folder require at productino level)

Ensuite, nous pouvons créer un fichier gulp et une tâche à gulp qui Construire mon client projet et placez ce dossier de construction dans le

server -> public

Désormais, seul le serveur peut être utilisé pour la production où Build sera rendu en statique.

Et à côté du processus d'authentification et d'authentification, vous pouvez suivre l'autorisation basée sur JWT.


0 commentaires

0
votes

En général, je dirais que séparer votre code client et serveur en projets séparés est préférable afin que vous n'ayez pas à libérer à la fois votre client et votre serveur en même temps lorsque vous modifiez l'un ou l'autre. Le reste de ma réponse est basé sur l'hypothèse que vous sépareriez les deux parties en projets différents.

En ce qui concerne la structuration de votre application basée sur Express côté serveur, consultez ce lien pour obtenir des conseils sur la façon de gérer votre situation. Consultez la réponse à la première question sur les différentes approches de structuration de votre application Express pour différents scénarios de déploiement. De plus, si vous utilisez la dernière version LTS de node, vous n'aurez pas besoin d'utiliser un transpilateur pour convertir vos fichiers en Javascript car l'environnement Node s'en chargera pour vous.

En ce qui concerne la structuration de votre application Angular côté client, consultez ce lien pour un très discussion détaillée sur les meilleures pratiques pour structurer votre application Angular.


0 commentaires

0
votes

Je préférerais suivre, au cas où à l'avenir vous auriez besoin de séparer la couche API avec le client, vous pouvez le faire facilement,

project
  |----client
   | ---client-template //All UI code like .css/htmls and node process initiates from here
   | ---client-angular // All the directives and controllers goes here
   | ---client-service //Service layer, All the API call to server goes here
  |----server
   | ---server API's // separated by its own module if any 
     |--- you API modules and so on..

Cela vous aidera à avoir une flexibilité sur le client et le serveur intégration sans aucun couplage serré. Aussi facile à maintenir et à déboguer.


5 commentaires

cela signifie-t-il donc deux dossiers package.json et deux dossiers nodee_modules, l'un dans le client et l'autre dans le serveur?


ok merci, aussi je veux déployer ce projet. Donc, comme java comme guerre d'oreille. Quel sera le package pour ce projet de nœud? Fichier zip? Veuillez m'excuser de poser ces questions stupides.


Comme java, vous devez exécuter en utilisant la commande java . Ici, une fois que vous avez construit votre projet avec les modules de nœuds respectifs, vous pouvez exécuter votre fichier d'application principal tout comme node app.js (le nom de fichier peut être n'importe lequel) Jetez un œil aux derniers modules de nœuds express pour l'API du serveur et angulaire pour l'amorçage de l'interface utilisateur.


oui, que je sais. Mais mes questions sont 1). J'ai construit le package angular et l'ai déployé dans le dossier du serveur en spécifiant le chemin dans angular.json et ng build command. Quelle est la commande pour créer un serveur de nœuds? 2). Donc, après avoir construit le module de nœud, j'expédie tous les js dans un fichier zip ou un fichier tar? 3). Par exemple, j'ai une machine serveur Windows, comment pourrais-je héberger cette application, quel est le meilleur pour héberger cette application?


Vous pouvez héberger l’application serveur sur le nœud IIS, c’est la meilleure pratique lorsque vous êtes sous Windows hostek.com/blog/node-js-applications-on-windows-iis



0
votes

Réponse 1: vous devez créer deux structures de dossier / référentiel distinctes pour le frontend et le backend.

Supposons que votre application se développe rapidement au moment où vous souhaitez mettre à l'échelle votre backend et que vous souhaitez héberger votre application Angular en tant qu'application Web statique à l'aide d'Amazon-S3, donc à ce moment-là, il sera très facile de gérer cela.

Pourriez-vous utiliser CICD, dans ce cas également, il sera bon d'avoir votre dossier séparé afin que vous puissiez créer des travaux CICD séparés pour le backend et le frontend.

Votre entreprise a peut-être embauché un développeur expert en frontend ou en backend uniquement. dans ce cas, votre entreprise ne souhaite pas leur donner un accès au code inutile. un dépôt séparé sera donc une option facile dans ce cas. (cela peut dépendre de l'approche de développement de votre équipe et de votre entreprise)

Réponse 2: Je recommande d'utiliser les fonctionnalités es6 ou es6 +.

La dernière version de node.js prend en charge certaines des fonctionnalités d'es6. par exemple - opérateur d'épandage - destructeur - classes (vous pouvez utiliser des POO) - fonctions fléchées - laissez, const - attente asynchrone et etc

vous pouvez utiliser babel si une autre fonctionnalité n'est pas prise en charge par node.js. il pourrait y avoir une raison d'utiliser babel, mais je veux savoir quelle fonctionnalité spécifique souhaitez-vous utiliser avec babel? donc je peux expliquer en fonction de cela.


2 commentaires

J'utilise v10.15.3 mais cela ne me permet pas d'exécuter des importations es6.


peut-être que cela peut vous aider stackoverflow.com/a/45854500/2036977 . vous pouvez utiliser la fonction de script expérimental ecma dans node.js. mais vous pouvez utiliser babel si vous le souhaitez.



0
votes

J'ai utilisé l'approche suivante qui lie l'application angulaire et le serveur Node en une seule unité.

Les étapes de création de la structure du projet sont les suivantes:

  1. Créez un nouveau projet Angular avec la CLI.
  2. Créez un fichier server.js dans le répertoire racine du projet et configurez-le pour restituer le contenu du dossier dist / sur le / itinéraire.

Vous pouvez consulter le lien pour le code du serveur: https://github.com/nikhilbaby/node -serveur

Exécution du serveur

Je lance généralement le projet avec ng build && node server . Cela garantira que l'application angulaire est créée en premier et après le démarrage de ce serveur de nœuds.


0 commentaires