После нескольких лет работы с node я могу сказать, что нет никаких соглашений о структуре каталогов / файлов. Однако большинство (профессиональных) экспресс-приложений используют такие настройки, как:
/
/bin - scripts, helpers, binaries
/lib - your application
/config - your configuration
/public - your public files
/test - your tests
Примером, который использует эту настройку, является nodejs-starter .
Я лично изменил эту настройку на:
/
/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
На мой взгляд, последний лучше соответствует структуре каталогов в стиле Unix (тогда как первый немного смешивает это).
Мне также нравится этот шаблон для разделения файлов:
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;
Библиотека / статический / index.js
var express = require('express');
module.exports = function(app) {
app.use(express.static(app.settings.static.path));
};
Это позволяет аккуратно отделить весь исходный код, не беспокоясь о зависимостях. Действительно хорошее решение для борьбы с неприятным Javascript. Реальный пример рядом , который использует эту установку.
Обновление (имена файлов):
Что касается имен файлов наиболее распространенных являются короткими , в нижнем регистре имен файлов. Если ваш файл можно описать только двумя словами, в большинстве проектов JavaScript в качестве разделителя используется символ подчеркивания.
Обновление (переменные):
Что касается переменных, применяются те же «правила», что и для имен файлов. Однако прототипы или классы должны использовать camelCase .
Обновление (руководства по стилям):