Pour la structure du code tu peux essayer de suivre la structure MCV, tu as cette réponse sur stackoverflow qui explique la structure des dossiers d'une méthode MCV.
De mon côté, j'ai aussi cherché une méthode, mais aucun site aborde la structure du code comme si c'était une connaissance innée. J'ai pris l'habitude de faire un fichier launcher par environnement (prod1, prod2, local, dev, etc), ce fichier définit la config et prépare l'environnement.
Les fichiers launcher incluent mon fichier main.js qui démarre les différents processus de mon code (ex : Websocket, express, readline personnalisé, etc…). Et il fait la jonction entre mes différentes classes, il effectue aussi l'ouverture des ports et charge la configuration ainsi que le rooter/firewall (-> gestion des permissions).
Je mets tous mon code js dans le dossier src, structurer à l'esprit des Bundles de Symfony, c'est-à-dire par grand thème/fonctionnalité. Tous mes fichiers statics finissent dans ./public/.
| node/
./.gitignore
./launcher-prod1.js
./launcher-prod2.js
./launcher-*****.js
./main.js
./package.json
./src/ -> Le code js
./app/ -> La config (root, config des lib, etc.)
./public/ -> Les fichiers statics
|
Je viens de regarder une vidéo sur Nodejs d'une conférence par les employés de la société iAdvize : STRUCTURER MA PREMIÈRE APPLICATION NODEJS. C'est un vrai retour d'expérience d'une entreprise qui explique leur choix et leur façon de faire. J'ai trouvé quelques outils intéressant ainsi que leur démarche pour mettre en production, j'ai apprécié leur explication pour éviter des problèmes de dépendance qui change avec shrinkwrap & d'autres explications ici.
Par contre ça n'aborde pas l'aspect programmation, comment écrire son code (bien qu'il site lodash dans leur vidéo).
Mais plutôt l'aspect partage (travail collaboratif) et la mise en prod (une configuration globale multi-projet, séparation des environnements (avec Common env), mise en place d'une documentation (avec Swagger), ainsi que la mise en place de test (mocha) & d'alerte avec coverage, david).
Le fonctionnement est synthétisé par le modèle des 12 facteurs.