381 votes

Structure de dossiers pour un projet nodejs

J’ai remarqué que les projets de nodejs incluent souvent des dossiers comme celles-ci :

/tests, /support, /libs, /spec, /vendor

Que ces dire exactement ? Quelle est la différente entre eux, et où dois-je inclure fait référence au code ?

472voto

schaermu Points 6251

Concernant les dossiers que vous avez mentionné:

  • /libs est généralement utilisé pour les classes personnalisées/fonctions/modules
  • vendeur / ou /support contient 3ème partie les bibliothèques (ajouté que git sous-module lors de l'utilisation de git en tant que source de contrôle)
  • /spec contient des spécifications pour la BDD tests.
  • /tests contient l'appareil de tests pour une application (à l'aide d'un test cadre, voir ici)

REMARQUE: les deux /fournisseur et /support sont obsolètes depuis MNP introduit un nettoyage de gestion de paquets. Il est recommandé de traiter tous de la 3e partie des dépendances à l'aide de la NGP, et un forfait.fichier json

Lors de la construction d'une assez grande application, je recommande ce qui suit des dossiers supplémentaires (surtout si vous êtes en utilisant un certain type de MVC- / ORM-Cadre comme l' express ou mangouste):

  • /modèles contient tous vos ORM modèles (appelés Schemas dans la mangouste)
  • /vues contient votre point de vue-les modèles (à l'aide de toute création de modèles de langue pris en charge dans l'express)
  • /public contient tout le contenu statique (images, feuilles de style, JavaScript côté client)
    • /assets/images contient des fichiers d'image
    • /assets/pdf contient des fichiers pdf statiques
    • /css contient les feuilles de style (ou de la compilation sortie par un moteur css)
    • /js contient du code JavaScript coté client
  • /contrôleurs de contenir l'ensemble de vos voies express, séparés par module/de la zone de votre application (remarque: lors de l'utilisation de l'amorçage de la fonctionnalité de l'express, ce dossier est appelé /routes)

J'ai pris l'habitude d'organiser mes projets de cette façon et je pense que ça fonctionne assez bien.

Mise à jour pour CoffeeScript-Exprimer en fonction des applications (à l'aide de connectez-actifs):

  • /app contient votre compilé en JavaScript
  • /assets/ contient tous les client-côté de l'actif que nécessitent la compilation
    • /assets/js contient votre côté client fichiers CoffeeScript
    • /assets/css contient tous vos MOINS/Stylet les feuilles de style
  • /public/(js|css|img) contient vos fichiers statiques qui ne sont pas gérées par les compilateurs
  • /src contient tous vos côté serveur spécifique fichiers CoffeeScript
  • /test contient tous les scripts de test (mise en œuvre à l'aide d'un test-cadre de votre choix)
  • /vues contient tous vos expriment des points de vue (jade, ejs ou tout autre moteur de template)

54voto

Paulo Oliveira Points 395

Il y a une discussion sur GitHub à cause d'une question similaire à ceci: https://gist.github.com/1398757

Vous pouvez utiliser d'autres projets pour l'orientation, la recherche sur GitHub:

  • ThreeNodes.js - à mon avis, semble avoir une structure spécifique ne conviennent pas pour chaque projet;
  • plus léger - plus la structure simple, mais manque un peu d'organisation;

Et enfin, dans un livre (http://shop.oreilly.com/product/0636920025344.do) suggère que cette structure:

  • index.html
  • js/
    • main.js
    • modèles/
    • vues/
    • collections/
    • templates/
    • libs/
      • backbone/
      • trait de soulignement/
      • ...
  • css/
  • ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X