2017-08-14 23 views
0

は現在、私は私のnodejsのアプリケーションで、このように設定した環境変数があります。オブジェクト型環境変数を取得する方法は?

`

if (process.env.NODE_ENV === 'development') { 
    process.env.LOGGER_LEVEL = 'silly'; 
    process.env.DB = 'db-v2-staging'; 
    process.env.DB_URI = 'localhost'; 
    process.env.SOME_FLAG = true; 
    process.env.SOME_API_KEY = 'y43e6fgccdxfgvH4JR-KiUWkIvJeWiw'; 
    process.env.SftpServer = { 
    host: '111.11.11.11', 
    port: 22, 
    username: 'johndoe', 
    password: 'johndoe', 
    input: './input_clone_test', 
    output: './output_clone_test', 
    }; 
} else if (process.env.NODE_ENV === 'production') { 
    process.env.LOGGER_LEVEL = 'silly'; 
    process.env.DB = 'db-v2-staging'; 
    process.env.DB_URI = 'localhost'; 
    process.env.SOME_FLAG = true; 
    process.env.SOME_API_KEY = 'y43e6fgccdxfgvH4JR-KiUWkIvJeWiw'; 
    process.env.SftpServer = { 
    host: '111.11.11.11', 
    port: 22, 
    username: 'johndoe', 
    password: 'johndoe', 
    input: './input_test', 
    output: './output_test', 
    }; 
} 

Problem i face is when i try to accessをprocess.env.SftpServer it gives me **"[object Object]"** as output, even if i go with JSON.stringify(process.env.SftpServer)は`それは私を与える"" [オブジェクトオブジェクト] "" "。解決策を理解する必要がある場合は、可能な場合は、第三者のモジュールを使用せずにソリューションを提案して、変数管理を行ってください。

答えて

1

ENV変数はOSに依存するものです。 JS Object Notationはサポートしていません。 解決策は文字列として設定され、取得中にJSON解析を行います。

process.env.SftpServer = `{ 
    "host": "111.11.11.11", 
    "port": 22, "username": "johndoe", 
    "password": "johndoe", 
    "input": "./input_clone_test", 
    "output": "./output_clone_test" 
}`; 


console.log(JSON.parse(process.env.SftpServer)) 
関連する問題