不同的数据库在nodejs中进行生产和开发

我知道Ruby on Rails具有这个特性,并且在railstutorial中特别鼓励它。 但是,我还没有在nodejs中find这样的事情。 如果我想在我的机器上运行Sqlite3,所以我可以很容易地使用数据库访问,但在Heroku生产postgres,我怎么会在Nodejs做到这一点? 我看不到任何教程。

谢谢!

编辑:我打算包括Node.JS + Express。

这当然是可能的,但请注意,这可能是一个坏主意: http : //12factor.net/dev-prod-parity

如果你不想经历在本地设置postgres的麻烦,你可以在Heroku上使用免费的postgres计划,并从本地机器连接到它:

DATABASE_URL=url node server.j 

.env文件可以使这个更容易:

在生产和开发之间切换Db使用不同的端口在本地和Heroku上运行应用程序。 由于Heroku默认运行应用程序到端口80,你有一个其他的端口,而本地运行你的应用程序。

这将帮助您在运行时弄清楚应用程序是在本地运行还是在生产环境中运行,并且可以相应地切换数据库。

你可以使用像jugglingdb这样的东西:

JugglingDB(3)是针对nodejs的cross-db ORM,提供访问大多数stream行数据库格式的通用接口。 目前支持的是:mysql,sqlite3,postgres,couchdb,mongodb,redis,neo4j和js-memory-storage(是的,只有testing用法的自写引擎)。 你可以添加你最喜欢的数据库适配器,检查现有的适配器之一,以了解如何,这是超级简单,我保证。

Jugglingdb也适用于客户端(使用WebService和Memory适配器),允许使用JSON API编写与服务器交互的丰富的客户端应用程序。

我个人并没有使用它,但有一个共同的API来访问所有的数据库实例将使得一个本地和一个在生产中使用一个非常简单 – 你可以连接一些位置检测,也没有太多的麻烦,并自动根据所在环境select目标数据库。