当前位置: 首页 > 面试题库 >

Node.js设置环境特定的配置以与Everyauth一起使用

蒋无尘
2023-03-14
问题内容

我正在使用node.js + express.js + everyauth.js。我已经将所有我的Everyauth逻辑移到了模块文件中

var login = require('./lib/everyauthLogin');

在其中,我使用密钥/秘密组合加载我的oAuth配置文件:

var conf = require('./conf');
.....
twitter: {
    consumerKey: 'ABC', 
    consumerSecret: '123'
}

这些代码对于不同的环境是不同的-开发/登台/生产,因为回调是针对不同的URL的。

如何在环境配置中设置它们以过滤所有模块,或者可以将路径直接传递到模块中?

在环境中设置:

app.configure('development', function(){
  app.set('configPath', './confLocal');
});

app.configure('production', function(){
  app.set('configPath', './confProduction');
});

var conf = require(app.get('configPath'));

传递

app.configure('production', function(){
  var login = require('./lib/everyauthLogin', {configPath: './confProduction'});
});

?希望有道理


问题答案:

我的解决方案

使用加载应用

NODE_ENV=production node app.js

然后设置config.js功能而不是对象

module.exports = function(){
    switch(process.env.NODE_ENV){
        case 'development':
            return {dev setting};

        case 'production':
            return {prod settings};

        default:
            return {error or other settings};
    }
};

然后按照Jans解决方案加载文件并创建一个新实例,如果需要,我们可以传递一个值,这种情况下process.env.NODE_ENV是全局的,因此不需要。

var Config = require('./conf'),
    conf = new Config();

然后,我们可以像以前一样完全访问config对象的属性

conf.twitter.consumerKey


 类似资料:
  • 使用特定于环境的值配置Grails服务的最佳方法是什么?我认为有两种选择: 从服务类或 我在stackoverflow和其他地方看到了一些展示如何执行#1(在服务中访问grailsApplication)的帖子。其中一个帖子是:将grails应用程序配置注入服务。 两本书有注入属性的示例(方法#2)。本书《Grails 2的权威指南》第10章题为“实际服务”的一节介绍了如何做到这一点,但没有特定于

  • 问题内容: 我使用martini在Go中有一个GAE应用程序。我需要能够设置环境变量以告诉martini它应该使用生产设置进行初始化。根据Python文档,您可以在app.yaml中设置环境变量。我没有在Go docs中 看到任何有关此的内容,但我猜想它应该可以正常工作。 我需要能够将环境变量设置为,但是我只想在实际投入生产时(即)进行操作。有什么方法可以告诉您仅在非开发服务器上运行吗? 问题答案

  • 我有一个简单的测试。bat文件,如下所示 当我运行这个批处理文件时,它列出了我的生产帐户中的实例。当我在C:\Users\testuser检查我的用户配置文件位置时。aws,凭据文件具有我的生产帐户的访问密钥和密钥。 我的问题是每个aws留档(http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

  • 问题内容: 这似乎是一个很常见的问题,但是我没有找到关于最佳方法的任何共识,因此我在这里提出了这个问题。 我正在使用Spring Batch和Spring开发命令行Java应用程序。我正在使用属性文件以及PropertyPlaceholderConfigurer,但是我不确定为多个环境(开发,测试等)处理属性文件的最佳方法。我的Google搜索只提供了一种编程方式来加载属性(即,在Java代码本身

  • 问题内容: 我用来将货币从BigDecimal格式化为字符串。按预期工作,问题在于我们的主要目标是荷兰市场,而默认的荷兰格式很奇怪。 让我解释一下,当格式化-125时,荷兰语将得到“€125-”(预期为“-€125”)。英国按预期方式提供“-£125.50”。 我可以检查语言环境是否为荷兰语,然后在每次我要设置小数格式时都提供一个模式。但是我更喜欢一个解决方案,它可以覆盖荷兰的格式设置。我在考虑以

  • 1.下载并安装Jdk 传送门,下载完成以后,按照提示一步一步执行即可。 2.配置Jdk 传送门。 3.下载AndroidStudio 传送门,我一般选择推荐安装的那个。不要想着去谷歌官网下载,不要问为什么。 4.安装配置AndroidStudio。传送门,后续会重新传送一个门。 5.下载并安装nodejs 传送门。 6.安装weex命令行工具。打开命令行,执行命令:npm install -g w