我正在尝试使用npm
模块fb来使用facebook api。配置文件位于模块中,这是同一
var config = { };
// should end in /
config.rootUrl = process.env.ROOT_URL || 'http://localhost:3000/';
config.facebook = {
appId: process.env.FACEBOOK_APPID || '130243393813697',
appSecret: process.env.FACEBOOK_APPSECRET || 'c82696768ae4ad8b63db874cb64eb558',
appNamespace: process.env.FACEBOOK_APPNAMESPACE || 'nodescrumptious',
redirectUri: process.env.FACEBOOK_REDIRECTURI || config.rootUrl + 'login/callback'
};
module.exports = config;
我不希望更改模块的配置文件,因为node_modules
文件夹保存在gitignore
列表中。要将模块配置为使用我的应用appId
和appSecret
,我需要设置process.env
变量FACEBOOK_APPID
和FACEBOOK_APPSECRET
我知道可以在调用sails lift时完成,但是无论如何都可以在app中设置这些值,这样我只需要调用
帆升降机
没有任何变量那些应该自动设置?或者,在这里实现我想做的最好的方法是什么?
答案 0 :(得分:7)
您应该在App之外设置环境变量。
您也可以使用sails lift
代替node app.js
。有了它,您可以使用以下命令为节点应用程序定义环境变量:
$> FOO='bar' node app.js
在你的情况下:
$> FACEBOOK_APPID='232322a22' FACEBOOK_APPSECRET='mysecrete' node app.js
如果你想在你的应用程序中设置这些变量(我不建议这样做!)你可以在包含你的npm模块之前设置它们。例如,在config/bootstrap.js
:
module.exports.bootstrap = function(cb) {
process.env.FACEBOOK_APPID = "myvar";
process.env.FACEBOOK_APPSECRET = "mysecrete";
sails.facebook = require("yourmodule");
cb();
};
答案 1 :(得分:0)
Here是设置环境变量的好链接,当Sails中的“生产”,“暂存”和“开发”感觉分散时。
Here是一个快速视频教程,它简单地解释了如何在node.js中创建环境变量
<强>步骤1:强> 将包dotenv安装为依赖
$ npm install dotenv --save
<强>步骤2:强> 然后在app.js中要求dotenv并加载.env文件
var dotenv = require('dotenv');
dotenv.load();
<强>步骤3:强> 在根文件夹中创建一个.env文件(即与app.js文件在同一文档级别)
<强>步骤4:强> 添加环境变量
S3_KEY=enfiownqefniqofewqofnieqwvewlk
S3_SECRET=123456789
现在,您可以在应用程序的任何位置访问这些环境变量(可能在某些配置/文件中):
return {
key: process.env.S3_KEY,
secret: process.env.S3_SECRET,
region: 's3-eu-west-1',
bucket: 'myBucket',
s3params: {
ACL: 'public-read'
}
}
提供本教程的信用额度为Noah Bass。