2015-01-14 3 views
17

Ответы здесь все относятся к тому, что называется process.env.NODE_ENV, но echo $process.env.NODE_ENV из командной строки не работает. Есть идеи?Есть ли способ отобразить NODE_ENV из командной строки?

+0

Вы спрашиваете, как напечатать переменные окружения в вашей оболочке ? Проконсультируйтесь с документами для вашей оболочки. – SLaks

+0

Как говорит @SLaks, ознакомьтесь с документами оболочки. Типичным примером является «echo $ NODE_ENV», но оболочки меняются –

ответ

1

перейти к узлу REPL, а затем предоставить process.env.NODE_ENV, а переменный процесс - внутри процесса nodejs, а не в вашем shell-процессе.

[email protected]:~/src$ node 
> process.env. 
+1

. process.env.NODE_ENV в repl возвращает undefined. – thetrystero

+1

, тогда переменная не задана. –

+0

Не запускал ее как '$ NODE_ENV = производственное узловое приложение ', задает переменную' production'? – thetrystero

19

echo $NODE_ENV. Командная строка - это оболочка, возможно, bash, и это синтаксис bash для печати значения переменной среды.

+1

это не работает. – thetrystero

+0

@thetrystero Основываясь на ваших различных комментариях, переменная окружения, вероятно, нигде не определена. Какую ценность вы ожидаете от этого? Когда и где вы пытаетесь установить его? Также обратите внимание, что это не переменная по умолчанию для узла ([Что такое NODE_ENV в Express?] (Http://stackoverflow.com/questions/16978256/what-is-node-env-in-express)). –

+0

ничего не показывает, потому что переменная пуста, но она действительно работает. –

1

Вы установили процесс NODE_ENV для процесса?

Вот несколько примеров. Где-то в коде вы устанавливаете среду узла на "production" или "development" или "any thing you want". И сделайте что-нибудь в соответствии со средой вашего узла.

process.env.NODE_ENV="production"; 

//others coding 
if(process.env.NODE_ENV === "production") 
{ 
    //useblabla log level. 
    //use production log. 
} 
else if(process.env.NODE_ENV === "development") 
{ 
    //useblabla log level. 
    //use development log. 

} 
console.log(process.env.NODE_ENV); //"production" 
+0

Да, у меня есть эти утверждения if в моем приложении. Js. Я запускаю приложение, используя '$ NODE_ENV = приложение для производственного узла. – thetrystero

+0

@thetrystero. Так что все-таки вы не можете повторить свой NODE_ENV? – pmverma

+0

nope, echo ничего не показывает – thetrystero

12

Если вы определили NODE_ENV переменные, то вы должны быть в состоянии увидеть, набрав node в командной строке, которая будет открыть ячейку узла, а затем введите process.env.NODE_ENV.

Чтобы проверить существующую переменную Env .. типа это .. process.env

+4

Я запускал 'NODE_ENV = производственное узловое приложение 'из командной строки, поэтому это должно привести к правильной работе над производством? затем в другом окне терминала в том же каталоге, где я запускал указанную выше команду, я вхожу в узел REPL и набираю 'process.env.NODE_ENV', но он возвращает неопределенный. – thetrystero

+2

@thetrystero У меня такая же проблема – lux

2

Для отображения текущей среды узла в окнах, используйте:

> echo %NODE_ENV% 

Это Виль выход среды в командной строке, например:

development 
+6

Он печатает «% NODE_ENV%» для меня – Pumych

+0

Это помогает узнать, когда вы сначала устанавливаете env. Затем повторите это. другой мудрый он отображает одно и то же сообщение% NODE_ENV% Попробуйте вот так: - установите NODE_ENV = production, а затем Echo it вы увидите набор env – Prasad

+0

@Pumych try $ NODE_ENV – AntonIva

1

Setp за шагом окна CMD NODE_ENV:

  1. множество NODE_ENV = my_node_env (определяет NODE_ENV)

  2. узел (узел запуска)

  3. process.env.NODE_ENV (показать NODE_ENV)

После установки «NODE_ENV» вы можете запустить приложение, и оно будет использовать набор NODE_ENV. Вы можете запустить приложение с настраиваемой средой в pm2 без проблем.

0
  1. Найти идентификатор процесса вы работаете, выполнив ps aux | grep node
  2. Посмотрите на переменных окружения, используемые этот процесс, выполняя less /proc/[your-id]/environ
Смежные вопросы