使用 angular-fullstack 生成器时,在后端访问环境变量的最佳方式是什么?

What's the best way to access env variables on the back end when using angular-fullstack generator?

我正在使用 Yeoman 的 angular-fullstack 生成器。

并且我更新了我的 server/config/environment/local.env.js 文件:

module.exports = {
  DOMAIN: 'http://localhost:9000',
  SESSION_SECRET: 'vfsite2-secret',
  SENDGRID : {
      API_KEY : 'my_api_key'
  },
  DEBUG: ''
};

如何最好地使用 SENDGRID.API_KEY 在我的服务器文件上的其他位置,例如在我的 server/api/thing/thing.controller.js 上?

注意这是不是this similar question的重复问题,因为我想在服务器端使用。

你是说全局对象?

global.globalConfig = {
  DOMAIN: 'http://localhost:9000',
  SESSION_SECRET: 'vfsite2-secret',
  SENDGRID : {
      API_KEY : 'my_api_key'
  },
  DEBUG: ''
};

module.exports = global.globalConfig;

我是如何解决这个问题的:

简化server/config/environment/local.env.js:

module.exports = {
    DOMAIN: 'http://localhost:9000',
    SESSION_SECRET: 'vfsite2-secret',
    SENDGRID_API_KEY: 'my_api_key',
    DEBUG: ''
};

更新了我的配置文件server/config/environment/index.js:

var all = {
  env: process.env.NODE_ENV,

  // ... other configs here

  // SendGrid connection options
  sendgrid: {
    'api_key': process.env.SENDGRID_API_KEY
  }
};

在我的控制器文件中检索了我的 sendgrid api_key server/api/thing/thing.controller.js:

import config from '../../config/environment';

// using SendGrid's Node.js Library
var sendgrid = require("sendgrid")(config.sendgrid.api_key);