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

时间:2021-06-22 22:48:02

I'm using a 3rd party library that needs a JSON config file, and I need to pass some env variables in as key values. If I include them as I normally would, eg:

我正在使用需要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
  }

...I get the error:

......我收到错误:

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

1 个解决方案

#1


11  

JSON does not have notion of environment variables. What you can do though is to declare your configuration file as node.js module and then you will be able to use your environment variables as follows:

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


11  

JSON does not have notion of environment variables. What you can do though is to declare your configuration file as node.js module and then you will be able to use your environment variables as follows:

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
  }
};