Мне интересно, структурирую ли я свое приложение nodejs соответствующим образом, чтобы учесть лучшую производительность. Меня больше всего беспокоит то, как я перемещаю ссылку на приложение по модулям.
По сути, в моем файле app.js я объявляю все свои требования, библиотеки и т. д.:
var app = {
config : require('../../config.json'),
restify : require('restify'),
path : require('path'),
mongo : require('mongodb'),
model : require('./models.js'),
step : require('step'),
q : require('q'),
api : require('./api_util.js'),
underscore : require('underscore')
};
В своем экспорте я передаю весь объект приложения. Теперь, учитывая мои знания JavaScript (вы можете поправить меня, если я ошибаюсь), это не создаст новых экземпляров объекта, он просто передаст объект как указатель и ссылается на тот же объект в памяти.
Теперь то, что я делаю помимо этого (для простоты), находится в моей библиотеке восстановления (то же самое можно сделать с Express), я добавляю значение приложения к объекту запроса сервера следующим образом:
app.server.pre(function (request, response, next) {
request.app = app;
return next();
});
Следовательно по каждому отдельному запросу, если мне нужен быстрый доступ к любому из объявлений моей библиотеки, конфигурации и т. д. Я могу легко получить доступ к request.app. Я тоже не вижу в этом проблемы, та же логика, что объект действует как указатель на одно и то же пространство памяти, поэтому я не удваиваю использование памяти или что-то в этом роде.
Есть ли лучший/более простой способ структурировать это?