2016-10-09 63 views
0

這聽起來像一個基本問題,但我無法在google上找到關於此的很多信息。SET NODE_ENV = dev做什麼?

我正在關注測試節點上的教程https://scotch.io/tutorials/test-a-node-restful-api-with-mocha-and-chai。有一個在的package.json

"scripts":{ 
    "start": "SET NODE_ENV=dev && node server.js", 
} 

代碼然而,當我運行它,我得到了錯誤。

WARNING: NODE_ENV value of 'dev ' did not match any deployment config file names. 

所以我的問題是,什麼SET NODE_ENV真的嗎?當你想要投入生產時,你如何修改它?

編輯於10/10/2016 我從文檔https://github.com/lorenwest/node-config/中發現NODE_ENV將在config文件夾中查找文件。所以SET NODE_ENV ='dev'尋找/config/dev.json。即使dev.json存在,也會發生錯誤,這很奇怪。該應用程序運行正常,所以我只是想知道錯誤的含義。

回答

0

這是一種設置環境變量的鈍化方式。您的代碼(或您需要的模塊中的代碼)可能會讀取它並根據它的設置做出決定。

我從你的錯誤猜測,你正在使用convict或其他配置模塊,假設NODE_ENV會告訴它,如果你正在開發模式或生產模式,或測試模式下運行的應用程序,並加載配置文件的名稱與例如dev.jsondev.js其中爲該環境設置了特定的內容。

只需在npm啓動腳本中執行NODE_ENV=dev node server.js,您就可以在沒有SET命令的情況下執行同樣的操作。

0

SET NODE_ENV = dev確切地說它是什麼意思。建立一個名爲NODE_ENV的環境變量var到「dev」值。 但是你要求的可能是,這對我的應用程序有什麼影響?

那麼這取決於你的應用程序如何使用它。找個地方插件的源代碼其中,此數值(有點類似於process.env.NODE_ENV,或類似的),然後檢查,將有可能瞭解它

在你的情況下,它用於兩件事情。加載正確的配置文件,建立記錄的某些屬性,獲取mongo數據庫URI等