第二次“new CouchDB.Database(queueDb);”时引发错误

我正在使用meteor-couchdb,并尝试连接到数据库进行API调用,并执行所需的操作。

dbName = new CouchDB.Database('db_name'); 

但是,当再次进行API调用时会抛出错误

 Error: A method named '/db_name/insert' is already defined 

根据API调用,我应该能够select需要连接的Db。 我尝试在节点的方式,即

 Cloudant.use('db_name'); 

但是,然后meteor是我的服务器端框架,我需要asynchronous处理同步使用async await或Meteor.wrapAsync()。

什么是build议的方法来连接到数据库并执行操作,每当一个API调用?

如果我正确理解meteorCouchDB实现它连接到一个数据库服务器,并允许您使用多个数据库,所以无论多less次您调用new CouchDB.Database('db_name');

你应该做的是以下几点:

 // tasks.js // create an instance of Tasks database only once var Tasks = new CouchDB.Database('tasks'); // you may want to export it so you can use it elsewhere exports.Tasks = Tasks; // blabla.js // in another file require the file var Tasks = require('path/to/tasks.js').Tasks; // and use it when needed Tasks.find(); 

附加代码来回答下面的评论

你可以有一个文件叫做dbs.js ,它可以为你dynamic创builddbs

 var dbs = {}; exports.getDb = function(name){ if (!dbs[name]) dbs[name] = new CouchDB.Database(name); return dbs[name]; }; 

然后在任何你想要的地方使用

 var Tasks = require('dbs.js').getDb('Tasks'); Tasks.find();