[英]How can I set environment variables in my Javascript file rather than the command line?
[英]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.js
或export 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.