簡體   English   中英

nodejs 如何讀取命令行中設置的環境變量?

[英]How does nodejs read environment variables set in command line?

我想問一個愚蠢的問題,但我已經用谷歌搜索了一段時間,找不到滿意的答案。 所以也沒有這樣的討論,只有如何在 OS X 中將 NODE_ENV 設置為生產/開發,以及如何在 Windows 上設置 NODE_ENV=production?

要在一行中一個接一個地運行命令,我們通常通過以下方式加入它們; ( 或&& )

所以我假設我應該運行這樣的命令PORT=3000 ; node server.js PORT=3000 ; node server.jsexport PORT=3000; node server.js export PORT=3000; node server.js ,就像PORT=3000 ; echo $PORT PORT=3000 ; echo $PORT

但是我們只是在PORT=3000 node server.js (沒有;&& )之間放置一個空格,然后將 PORT 讀入process.env.PORT. shell如何讓nodejs獲取環境變量? 如果有人能顯示 nodejs 代碼會更好。

----- 更新------

我對這個 shell 語法感到困惑的原因(根據我有限的知識)是我認為 Unix 命令行的一般格式是

command options(s) filename(s)

中間的空格用於將命令與選項和文件名分開。 那么如何使用它來分隔 2 個命令呢?

我檢查了 nodejs 文檔並找到了答案https://nodejs.org/api/process.html#process_process_env

所以它是environment ,而不是 2 個單獨的命令,

Bourne 風格的 shell 支持語法

 NAME=value command

僅在執行命令的進程范圍內創建環境變量定義。

或者如bash 手冊3.7.4 所述。

對於 python ,它是os.environ['NAME']

這也是它在 Windows 上不起作用的原因: 如何在 Windows 上設置 NODE_ENV=production?

Windows 用戶的注釋,作為 daw "set NODE_ENV=production && " 的注釋,向變量添加了尾隨空格,並且不要使用單/雙引號。

我覺得很尷尬,我幾乎想刪除我的問題。 我把它留在這里以防其他人也有這個疑問。 或者其他人可以進一步解釋環境或節點如何將其讀入 process.env 對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM