JavaScript: как обнаружить среду на страницах сервера - PullRequest
0 голосов
/ 02 октября 2018

Я унаследовал приложение реагировать / javascript, и я хотел бы внести небольшое изменение, чтобы экспортировать различные переменные учетной записи mailchimp для тестовых сред prod vs в mailchimp-configuration.js.(Эти значения импортируются из src / server / index.js)

Я обновил mailchimp-configuration.js, чтобы проверить, является ли process.env.NODE_ENV == 'production'.Это работает, но это не совсем правильно, так как я могу запустить свой локальный сервер песочницы (или промежуточный сервер) «как рабочий», и в этом случае производственная учетная запись используется вместо тестовой.Мне нужно использовать что-то более убедительное, чтобы знать, работаем ли мы в производственной среде или на промежуточном уровне или на локальном хосте.

Простое решение на страницах браузера - проверить URL через window.location.href,но, к сожалению, из mailchimp-configuration.js окно не определено.

Полагаю, я мог бы где-то установить глобальную переменную, но это последнее средство.Какой хороший способ проверить мою среду со стороны сервера?

спасибо!

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы можете использовать одну из собственных функций os узла и определить по определенному значению, запускаете ли вы узел локально в dev -> Ссылка

Стандартная практика - установить переменную средыв соответствии с окружающей средой, в которой вы находитесь (производство или разработка).

process.env.NODE_ENV 

выполнить проверку:

if (process.env.NODE_ENV === 'development') {
// do dev stuff
} 
if (process.env.NODE_ENV === 'production') {
//do production stuff
}
0 голосов
/ 02 октября 2018

Мне нужно использовать что-то более убедительное, чтобы знать, работаем ли мы в производственной среде с промежуточным или локальным.

Технически нет никакой разницы между "экземпляром nodejs".работающий на компьютере "и" экземпляр nodejs, работающий на компьютере ".Единственный способ различить «ваш локальный хост» и «рабочий сервер» - сообщить экземпляру nodejs, где он работает, и это делается с помощью process.ENV.

Я обновил mailchimp-configuration.jsчтобы проверить, является ли process.env.NODE_ENV == «производство».Это работает, но это не совсем правильно, так как я могу запустить свой локальный сервер песочницы (или промежуточный сервер) «как рабочий», и в этом случае производственная учетная запись используется вместо тестовой.

На самом деле, это правильный путь, если вы боитесь, что ваша секретная учетная запись электронной почты будет использоваться тестовым сервером, тогда этот секрет на самом деле должен попасть в секретный менеджер, такой как Vault

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...