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

时间:2016-01-10 22:02:42

标签: javascript node.js environment-variables yeoman angular-fullstack

我正在使用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,因为我想在服务器端使用。

2 个答案:

答案 0 :(得分:3)

我为解决这个问题做了什么:

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

在我的控制器文件 server/api/thing/thing.controller.js 中重新发送了我的sendgrid api_key:

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

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

答案 1 :(得分:2)

你的意思是全球对象?

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

module.exports = global.globalConfig;