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

如何存储Node.js部署设置/配置文件?

曹浩
2023-03-14
问题内容

我一直在开发一些Node应用程序,并且一直在寻找一种存储与部署相关的设置的良好模式。在Django世界(我来自哪里)中,通常的做法是创建一个settings.py包含标准设置(时区等)的文件,然后包含一个local_settings.py用于部署特定设置的文件。与哪个数据库进行通信,什么Memcache套接字,管理员的电子邮件地址等等。

我一直在寻找Node的类似模式。只需一个配置文件就可以了,因此它不必与中的其他所有文件一起使用app.js,但是我发现有一种方法可以在不在源代码管理中的文件中具有服务器特定的配置,这一点很重要。同一应用程序很可能会以不同的设置部署在不同的服务器上,并且必须处理合并冲突,而这并不是我的乐趣。

那么,为此是否有某种框架/工具,或者每个人都只是自己一起破解一些东西?


问题答案:

后来,我找到了一个很好的用于管理配置的Node.js模块:nconf。

一个简单的例子:

var nconf = require('nconf');

// First consider commandline arguments and environment variables, respectively.
nconf.argv().env();

// Then load configuration from a designated file.
nconf.file({ file: 'config.json' });

// Provide default values for settings not provided above.
nconf.defaults({
    'http': {
        'port': 1337
    }
});

// Once this is in place, you can just use nconf.get to get your settings.
// So this would configure `myApp` to listen on port 1337 if the port
// has not been overridden by any of the three configuration inputs
// mentioned above.
myApp.listen(nconf.get('http:port'));

它还支持在Redis中存储设置,编写配置文件,并具有相当可靠的API,并且作为Flatiron框架计划的一部分,还得到了备受推崇的Node.js商店之一Nodejitsu的支持。相当适合未来。

在Github上查看nconf。



 类似资料:
  • 问题内容: 我已经建立了一个reactjs网站,并试图使其能够部署。 现在,所有配置都是通过导入到所有模块中的config.js完成的。 但是,当我构建应用程序时,它会被编译到部署js中,并且是不可配置的。 我想拥有一个单独的文件,系统管理员可以根据其环境配置各种设置,例如API端点(该应用程序可能与后端未在同一服务器上运行,并且将无法访问DNS )。 有办法做到这一点吗?我也不希望为此使用第三方

  • 问题内容: 我们目前正在为一个客户开发一个网站(Apache下为TYPO3),该网站由node.js / socket.io应用程序支持,该应用程序可实时更新CMS提供的内容。 由于这是我们的第一个node.js项目,因此在“完美设置”方面没有任何最佳实践,因此我花了一些时间研究部署技术。 对于我来说,要实现一个良好的设置还有两个问题: 易于客户部署 。这一点非常重要,因为我们的网站将集成到其“实

  • null 我的问题是: 是否需要创建文件,然后在文件中引用它们,或者部署文件也可以嵌入pod定义? K8S文档似乎暗示的部分相当于定义一个pod。那是正确的吗?如果我想声明性地描述多pod部署呢?是否需要多个deployment.yml文件?

  • 本章介绍创建的 Kubernetes 集群部署方法、 kubectl 客户端的安装方法以及推荐的配置。 其中 Kubernetes-The-Hard-Way 介绍了在 GCE 的 Ubuntu 虚拟机中一步步部署一套 Kubernetes 高可用集群的详细步骤,这些步骤也同样适用于 CentOS 等其他系统以及 AWS、Azure 等其他公有云平台。

  • JDK内存设置 修改x5.2.1\apache-tomcat\bin目录下的catalina.bat文件,将“JAVA_OPTS=-Xms512m -Xmx1024m”中的内容修改为实际使用的大小。 32位操作JDK内存系统:最大可设置1G,如果设置过大,会导致服务无法启动。 64位操作JDK内存系统:所有服务的最大内存累加的和不大于物理内存的60%到80%。 线程数 修改x5.2.1\apach

  • 我正在开发一个Spring项目,我刚刚在 junit 中加载 XML 配置文件时遇到了严重的问题(但它们可以从 Web 控制器访问) - 无法加载 XML 文件。 我列出了我的类路径(在jUnit测试中),发现在其余目录中,包括2个目录: 我只想在测试中包含一个文件: < Li >/we b-INF/lyricsbasapp-servlet . XML 它导入以下3个文件: < li>/WEB-I