Node.js 拆分生产/开发数据库

Node.js 拆分生产/开发数据库,node.js,mongodb,heroku,express,mongoose,Node.js,Mongodb,Heroku,Express,Mongoose,我正在开发一个mongoDB支持的expressjs应用程序。我使用了快速生成器来创建它 我真的很想通过MongoLab开发一个数据库,然后部署到Heroku(它也有一个MongoLab数据库支持) 将这两者分开的最佳实践是什么?因此,当我在开发模式下启动应用程序时,它将使用development mongo实例,当我在生产模式下部署到heroku时,它将使用生产数据库 谢谢 Heroku的12Factor架构文档非常好地解释了配置管理的最佳实践及其背后的基本原理: tldr是“从环境变量

我正在开发一个mongoDB支持的expressjs应用程序。我使用了快速生成器来创建它

我真的很想通过MongoLab开发一个数据库,然后部署到Heroku(它也有一个MongoLab数据库支持)

将这两者分开的最佳实践是什么?因此,当我在开发模式下启动应用程序时,它将使用development mongo实例,当我在生产模式下部署到heroku时,它将使用生产数据库


谢谢

Heroku的12Factor架构文档非常好地解释了配置管理的最佳实践及其背后的基本原理:

tldr是“从环境变量中拉入配置并使用显式配置,而不是像‘开发’或‘生产’这样的命名环境。”

Heroku将提供连接到mongolab db所需的所有环境变量,因此,您只需在本地为应用程序提供这些相同的变量。一种常见的解决方案是
.env
文件:

这本质上是一个您不签入的文件,它为您的本地环境变量提供一个键值对列表。它可以通过Heroku Local运行,或者更一般地,通过node foreman或docker compose等工具运行


披露:我是Heroku的Node.js平台所有者,Heroku的12Factor体系结构文档在解释配置管理的最佳实践及其背后的原理方面做得很好:

tldr是“从环境变量中拉入配置并使用显式配置,而不是像‘开发’或‘生产’这样的命名环境。”

Heroku将提供连接到mongolab db所需的所有环境变量,因此,您只需在本地为应用程序提供这些相同的变量。一种常见的解决方案是
.env
文件:

这本质上是一个您不签入的文件,它为您的本地环境变量提供一个键值对列表。它可以通过Heroku Local运行,或者更一般地,通过node foreman或docker compose等工具运行

披露:我是Heroku的Node.js平台所有者