使用多个数据库连接mongodb的正确URL模式是什么

时间:2017-02-23 16:06:39

标签: node.js mongodb

设置一个新项目,我想为test,dev和prod建立单独的数据库:

d:/mongodb/project/test
d:/mongodb/project/dev
d:/mongodb/project/prod

我用mongod --dbpath d:/monodb/project/<env>

搞定了这些

当我尝试连接时,我得到Error: More than 1 database name in URL

const { MongoClient } = require('mongodb')
MongoClient.connect('mongodb://localhost:27017/project/dev')

api文档中给出的示例没有多大帮助

var MongoClient = require('mongodb').MongoClient,
  test = require('assert');
// Connection url
var url = 'mongodb://localhost:27017/test';
// Connect using MongoClient
MongoClient.connect(url, function(err, db) {

网址连接的正确规范是什么? (或者,如果我完全以错误的方式解决这个问题,那么将数据库分开进行测试的最佳方法是什么?)

1 个答案:

答案 0 :(得分:0)

您可以按照文档中的说明使用此驱动程序连接到mongodb: http://mongodb.github.io/node-mongodb-native/2.2/quick-start/quick-start/

所以你在那里的网址是正确的。

如果您想拥有单独的数据库(也可能位于具有不同凭据的不同主机上),那么我建议您使用配置包: https://www.npmjs.com/package/config

这允许您为每个环境定义一个配置,如果环境变量无法与json文件匹配,则default将是一个catch all。换句话说, NODE_ENV = prod 将映射到 prod.json NODE_ENV = test 将映射到 test.json NODE_ENV = [empty] 将映射到 default.json 。这是一种可能的设置。

您绝对不希望为每个环境创建多个连接。这不是必要的。