建立一个新项目,我希望有单独的数据库用于测试、开发和生产:
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.json,NODE_ENV=test 将映射到 test.json> 和 NODE_ENV=[empty] 将映射到 default.json。这是一种可能的设置。
您绝对不想为每个环境创建多个连接。这不是必需的。
关于node.js - 使用多个数据库连接到 mongodb 的正确 URL 模式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42420749/