Node.js
Structure du projet
Recherche…
Introduction
La structure du projet nodejs est influencée par les préférences personnelles, l’architecture du projet et la stratégie d’injection de module utilisée. Également sur l’événement basé sur un mécanisme d’instanciation de module dynamique. Pour avoir une structure MVC, il est impératif de séparer le code source côté serveur et le code source côté client car le code côté client sera probablement réduit et envoyé au navigateur et est de nature publique. Et le côté serveur ou back-end fournira une API pour effectuer des opérations CRUD
Remarques
Le projet ci-dessus utilise les modules browserify et vue.js comme vue de base de l'application et comme bibliothèques de minification. Ainsi, la structure du projet peut être modifiée avec précision en fonction du framework mvc que vous utilisez, par exemple le répertoire de compilation en public devra contenir tout le code mvc. Vous pouvez avoir une tâche qui le fait pour vous.
Une simple application nodejs avec MVC et API
- La première distinction majeure se situe entre les répertoires générés dynamiquement qui seront utilisés pour l'hébergement et les répertoires sources.
- Les répertoires source auront un fichier ou un dossier de configuration en fonction de la quantité de configuration que vous pourriez avoir. Cela inclut la configuration de l'environnement et la configuration de la logique métier que vous pouvez choisir de placer dans le répertoire de configuration.
|-- Config
|-- config.json
|-- appConfig
|-- pets.config
|-- payment.config
Maintenant, les répertoires les plus vitaux où l'on distingue le côté serveur / backend et les modules frontend. Les 2 répertoires serveur et webapp représentent respectivement le backend et le frontend que nous pouvons choisir de placer dans un répertoire source à savoir. src .
Vous pouvez choisir des noms différents pour chaque serveur ou application Web en fonction de ce qui vous convient. Assurez-vous que vous ne voulez pas le rendre trop long ou trop complexe car il est en fin de compte dans la structure interne du projet.
Dans le répertoire du serveur , vous pouvez avoir le contrôleur, le fichier App.js / index.js qui sera votre fichier principal nodejs et le point de départ. Le répertoire du serveur. peut également avoir le répertoire dto qui contient tous les objets de transfert de données qui seront utilisés par les contrôleurs API.
|-- server |-- dto |-- pet.js |-- payment.js |-- controller |-- PetsController.js |-- PaymentController.js |-- App.js
Le répertoire webapp peut être divisé en deux parties: public et mvc , ceci est à nouveau influencé par la stratégie de construction que vous souhaitez utiliser. Nous utilisons browserfiy pour créer la partie MVC de webapp et minimiser le contenu du répertoire mvc simplement.
| - webapp | - public | - mvc
Maintenant, le répertoire public peut contenir toutes les ressources statiques, images, css (vous pouvez également avoir des fichiers saas) et surtout les fichiers HTML.
|-- public
|-- build // will contianed minified scripts(mvc)
|-- images
|-- mouse.jpg
|-- cat.jpg
|-- styles
|-- style.css
|-- views
|-- petStore.html
|-- paymentGateway.html
|-- header.html
|-- footer.html
|-- index.html
Le répertoire mvc contiendra la logique frontale incluant les modèles , les contrôleurs de vue et tout autre module utils dont vous pourriez avoir besoin dans le cadre de l'interface utilisateur. De même, index.js ou shell.js, selon votre choix, font également partie de ce répertoire.
|-- mvc |-- controllers |-- Dashborad.js |-- Help.js |-- Login.js |-- utils |-- index.js
Donc , en conclusion toute la structure du projet ressemblera below.And une tâche simple de construction comme gulp browserify va rapetisser les scripts et publier dans mvc répertoire public. Nous pouvons alors fournir ce répertoire public en tant que ressource statique via express.use (satic ('public')) api.
|-- node_modules
|-- src
|-- server
|-- controller
|-- App.js // node app
|-- webapp
|-- public
|-- styles
|-- images
|-- index.html
|-- mvc
|-- controller
|-- shell.js // mvc shell
|-- config
|-- Readme.md
|-- .gitignore
|-- package.json