#javascript #node.js #express
#javascript #node.js #экспресс
Вопрос:
У меня есть два промежуточных ПО: router1 для prod и router2 для тестирования и разработки. Как использовать разные промежуточные программы на основе NODE_ENV?
Как насчет следующих кодов?
if( process.env.NODE_ENV === 'prod' ) {
app.use('/', router1);
} else {
app.use('/', router2);
}
Есть ли лучшие решения?
Спасибо
Комментарии:
1. именно так вы бы это и сделали. Я имею в виду, что вы могли бы сократить это до однострочного оператора, например
app.use('/', process.env.NODE_ENV === 'prod' ? router1 : router2);
, но это лучшее, что вы можете получить
Ответ №1:
Я бы сделал что-то подобное, чтобы иметь понятный набор доступных сред (вам может потребоваться промежуточная обработка и тестирование в какой-то момент), и таким образом вам не пришлось бы изменять код каждый раз, когда вы добавляете новую среду к объекту.
var routers = {
prod: /* declare prod router */,
dev: /* declare dev router */,
};
app.use('/', routers[process.env.NODE_ENV] || routers.dev);
Комментарии:
1. Или даже более компактный:
app.use('/', routers[process.env.NODE_ENV] || routers.dev);