Dopo alcuni anni con nodo, posso dire che non ci sono nessun convenzioni per la struttura di directory / file. Tuttavia, la maggior parte delle applicazioni express (professionali) utilizza una configurazione come:
/
/bin - scripts, helpers, binaries
/lib - your application
/config - your configuration
/public - your public files
/test - your tests
Un esempio che utilizza questa configurazione è nodejs-starter .
Ho personalmente modificato questa configurazione in:
/
/etc - contains configuration
/app - front-end javascript files
/config - loads config
/models - loads models
/bin - helper scripts
/lib - back-end express files
/config - loads config to app.settings
/models - loads mongoose models
/routes - sets up app.get('..')...
/srv - contains public files
/usr - contains templates
/test - contains test files
A mio parere, il secondo corrisponde meglio alla struttura delle directory in stile Unix (mentre il primo lo confonde un po ').
Mi piace anche questo modello per separare i file:
lib / index.js
var http = require('http');
var express = require('express');
var app = express();
app.server = http.createServer(app);
require('./config')(app);
require('./models')(app);
require('./routes')(app);
app.server.listen(app.settings.port);
module.exports = app;
lib / statico / index.js
var express = require('express');
module.exports = function(app) {
app.use(express.static(app.settings.static.path));
};
Ciò consente di disaccoppiare ordinatamente tutto il codice sorgente senza doversi preoccupare delle dipendenze. Un'ottima soluzione per combattere i cattivi Javascript. Un esempio del mondo reale è nelle vicinanze che utilizza questa configurazione.
Aggiorna (nomi file):
Per quanto riguarda i nomi di file, i più comuni sono i nomi di file brevi e minuscoli . Se il tuo file può essere descritto solo con due parole, la maggior parte dei progetti JavaScript utilizza un trattino basso come delimitatore.
Aggiorna (variabili):
Per quanto riguarda le variabili, valgono le stesse "regole" dei nomi dei file. I prototipi o le classi, tuttavia, dovrebbero utilizzare camelCase .
Aggiornamento (styleguides):