(node.js)如何在JSON文件中使用环境变量

时间:2016-05-01 03:01:35

标签: node.js

我正在使用需要JSON配置文件的第三方库,我需要将一些env变量作为键值传递。如果我像往常一样包括它们,例如:

  "s3": {
    "key": process.env.AWS_ACCESS_KEY_ID,
    "secret": process.env.AWS_SECRET_ACCESS_KEY,
    "bucket": process.env.S3_MLL_BUCKET_NAME,
    "destination": "/backups/database",
    "encrypt": false,
    "region": process.env.AWS_REGION
  }

...我收到错误:

SyntaxError: config/s3_backup.config.json: Unexpected token p

2 个答案:

答案 0 :(得分:14)

JSON没有环境变量的概念。您可以做的是将配置文件声明为node.js模块,然后您将能够使用您的环境变量,如下所示:

module.exports = {
  s3: {
    key: process.env.AWS_ACCESS_KEY_ID,
    secret: process.env.AWS_SECRET_ACCESS_KEY,
    bucket: process.env.S3_MLL_BUCKET_NAME,
    destination: "/backups/database",
    encrypt: false,
    region: process.env.AWS_REGION
  }
};

答案 1 :(得分:2)

我遇到了同样的问题,对我有用的是使用js文件并导出对象module.exports = {config: {"exampleAPIKey":"ruier4343"}} ...然后“字符串化”对象,然后将其解析回json const config = require("./jsConfigs.js").config; const jsonConfig = JSON.parse(JSON.stringify(config)) 我尝试了很多不同的方法,但这是唯一有效的方法。