是否可以设置进程?来自应用程序的环境变量



我试图使用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列表中。为了配置模块以使用我的应用程序的appIdappSecret,我需要设置process.env变量FACEBOOK_APPIDFACEBOOK_APPSECRET

我知道它可以在调用sails lift时完成,但是是否有可能在应用程序中设置这些值,以便我只需要调用

风帆升力

没有这些变量,这些应该自动设置吗?或者什么是实现我在这里想要做的最好的方法?

你应该在应用程序外部设置环境变量。

你也可以用node app.js代替sails lift。您可以使用以下命令为您的节点应用程序定义环境变量:

$> 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();
};

当sailings中的"Production", "Staging"one_answers"Development"显得支离破碎时,这里是设置环境变量的一个很好的链接。

这是一个快速的视频教程,简单地解释了如何在node.js中创建环境变量

步骤1:安装包dotenv作为依赖

$ npm install dotenv --save

步骤2:然后在app.js中要求dotenv并加载。env文件

var dotenv = require('dotenv');
dotenv.load();

步骤3:在根目录下创建一个。env文件。在与app.js文件相同的文档级别)

目的:添加环境变量

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提供本教程

SailsJS有一种方法可以在覆盖配置文件(例如production.js)中的任何配置的环境中设置它们。

这个用法的文档链接在这里:https://sailsjs.com/documentation/concepts/configuration ? setting-sailsconfig-values-directly-using-environment-variables

你可以这样设置环境变量,如果使用风帆控制台(这是来自文档)

sails_security__cors__allowOrigins='["http://somedomain.com","https://anotherdomain.com:1337"]' sails console

如果您正在使用云环境,您可以在环境中设置它。

要在应用程序内部进行设置,请使用配置文件结构config/env/*,其中*是stagingjs production.js

让你的请求像这样

module.exports.getAccessToken = async () => {
  const tokenData = await axios({
    method: "POST",
    url: `${sails.config.custom.externalAPI.auth}`,
    headers: { "Content-Type": "application/json" },
    data: {
      grant_type: "client_credentials",
      client_id: `...`,
      client_secret: `...`,
      audience: ...``,
    },
  })

不要使用dotenv的进程。Env to set as sails为您提供了一种在框架内完成此操作的方法。

相关内容

  • 没有找到相关文章

最新更新