Як змінити значення process.env.PORT у node.js?


Відповіді:


281

Лише за один запуск (з підказки оболонки Unix):

$ PORT=1234 node app.js

Більш постійно:

$ export PORT=1234
$ node app.js

У Windows :

set PORT=1234

У Windows PowerShell :

$env:PORT = 1234

4
Для документації, msdn.microsoft.com/en-us/library/windows/desktop/… для користувачів Windows
WraithKenny,

3
Крім того, для Powershell, це $env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
WraithKenny

VAR_1=value VAR_2=11827 node-> просто використовуйте пробіл, щоб використовувати більше однієї змінної в одній команді
p4bloch

15

Ви можете використовувати крос-платформенне рішення https://www.npmjs.com/package/cross-env

$ cross-env PORT=1234

Це, мабуть, найкраще рішення. Існує занадто велика межа для помилок з різними терміналами. Я витратив, як 40 хвилин, поки не знайшов cross-envреферати цю проблему далеко і просто працює.
adi518

8

Використовуйте команду нижче, щоб встановити номер порту в процесі вузла під час роботи програми JS вузла:

set PORT =3000 && node file_name.js

До встановленого порту можна отримати доступ до коду як

process.env.PORT 

2

EDIT: Пер @ sshow Зауваження, якщо ви намагаєтеся запустити додаток вузла на порт 80, нижче не кращий спосіб зробити це. Ось краща відповідь: Як запустити Node.js на порт 80?

Оригінальний відповідь:

Якщо ви хочете зробити це для запуску на порт 80 (або хочете встановити змінну env більш назавжди ),

  1. Відкрийте свій баш-профіль vim ~/.bash_profile
  2. Додайте змінну середовища у файл export PORT=80
  3. Відкрийте конфігураційний файл sudoers sudo visudo
  4. Додайте наступний рядок до файлу саме так Defaults env_keep +="PORT"

Тепер, коли ви запускаєте, sudo node app.jsвін повинен працювати як бажано.


Запуск сценаріїв вузла як root (sudo) не рекомендується. Використовуйте sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080та слухайте на порту 8080. stigok.tumblr.com/post/139320914543/…
sshow

1
Так, ви маєте рацію, я пов'язав з кращою дискусією (на що я також відповів, відмовившись ) і дізнався після того, як спочатку застосував цей підхід.
Кайл Чадха
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.