node.js - 使用多个数据库连接到 mongodb 的正确 URL 模式是什么

标签 node.js mongodb

建立一个新项目,我希望有单独的数据库用于测试、开发和生产:

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) {

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

最佳答案

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

所以您的 URL 是正确的。

如果你想拥有单独的数据库(也可以在不同的主机上使用不同的凭据)那么我建议你使用一个配置包: https://www.npmjs.com/package/config

这允许您为每个环境定义一个配置,如果环境变量无法与 json 文件匹配,默认情况下将是一个包罗万象的配置。换句话说,NODE_ENV=prod 将映射到 prod.jsonNODE_ENV=test 将映射到 test.json> 和 NODE_ENV=[empty] 将映射到 default.json。这是一种可能的设置。

您绝对不想为每个环境创建多个连接。这不是必需的。

关于node.js - 使用多个数据库连接到 mongodb 的正确 URL 模式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42420749/

相关文章:

javascript - 如何使用 Mongoose 检索多个集合

javascript - 选择元素的change()不起作用

MongoDB 错误无法连接到服务器

node.js - 为什么添加此 require import 会停止 Node.js 输出到控制台

javascript - 如何将 Stripe Connect 与 Node.js 集成?

javascript - 替换 node.js 中 XML Node 中的文本

node.js - 仅返回数据库中数组中的一个对象

mongodb - 将字符串转换为objectid mongodb

javascript - 如何从 Angular 前端服务查询用户?

mongodb - 与嵌套值的组和总和的聚合