1

我正在尝试使用环境变量,但是当我使用文件并运行服务器时,我只得到 PORT 变量,而我所有的其他变量都未定义。我正在使用节点蒙。

.env

PORT=3000
SENDGRID_API_KEY=sometext

包.json

"scripts": {
    "start": "node src/index.js",
    "dev": "env-cmd -f ./config/dev.env nodemon src/index.js"
  }

index.js

const port = process.env.PORT
const apiKey = process.env.SENDGRID_API_KEY
app.listen(port, () => {  
    console.log('Server is up on port '+port)
    console.log(apiKey)
})
4

2 回答 2

1

尝试使用dotenvnpm


import * as dotenv from 'dotenv'

dotenv.config(); 
export class Constants { 

  process.env.<YOUR_VARIABLE_NAME>

}
于 2020-03-29T06:23:08.140 回答
1

如果您使用-f它不会关心环境-e,请使用其中之一。

"env-cmd nodemon src/index.js"

.rc file ./.env-cmdrc

{
  "development": {
    "ENV1": "Thanks",
    "ENV2": "For All"
  },
  "test": {
    "ENV1": "No Thanks",
    "ENV3": "!"
  },
  "production": {
    "ENV1": "The Fish"
  }
}

// 命令:

env-cmd -e production nodemon index.js

检查: https ://github.com/toddbluhm/env-cmd

于 2020-03-29T06:24:55.290 回答