gpt4 book ai didi

javascript - "new CouchDB.Database(queueDb);"第二次报错

转载 作者:行者123 更新时间:2023-11-30 14:58:04 25 4
gpt4 key购买 nike

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

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

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

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

根据 API 调用,我应该能够选择需要连接的 Db。我尝试以 Node 方式做,即

Cloudant.use('db_name');

但是由于 Meteor 是我的服务器端框架,我需要使用 async await 或 Meteor.wrapAsync() 同步处理异步函数。

每当进行 API 调用时,连接到数据库并执行操作的建议方法是什么?

最佳答案

如果我正确理解 meteor CouchDB 实现,它会连接到一个数据库服务器并允许您使用多个数据库,因此无论您调用多少次 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,它会为你动态创建 dbs

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();

关于javascript - "new CouchDB.Database(queueDb);"第二次报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46947154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com