Javascript PockDB数据库创建无\u db\u文件
我正在尝试以下操作:我有一个本地数据库(使用PockDB),我检查用户是否登录(使用PockDB身份验证登录功能),如果为true,我将本地数据库与远程数据库同步 不幸的是,当我尝试在CouchDB上创建一个新数据库时(我希望每个用户都有一个db),我总是得到错误{“error”:“not_found”,“reason”:“no_db_file”}。我看到这是PockDB文档()中描述的常见错误,但CORS已启用,我无法找出问题所在 我的couchdb配置是: 我按如下方式登录:Javascript PockDB数据库创建无\u db\u文件,javascript,database,couchdb,pouchdb,Javascript,Database,Couchdb,Pouchdb,我正在尝试以下操作:我有一个本地数据库(使用PockDB),我检查用户是否登录(使用PockDB身份验证登录功能),如果为true,我将本地数据库与远程数据库同步 不幸的是,当我尝试在CouchDB上创建一个新数据库时(我希望每个用户都有一个db),我总是得到错误{“error”:“not_found”,“reason”:“no_db_file”}。我看到这是PockDB文档()中描述的常见错误,但CORS已启用,我无法找出问题所在 我的couchdb配置是: 我按如下方式登录: var us
var user = {
name: 'name',
password: 'password'
};
var url = "http://ip/";
var pouchOpts = {
skipSetup: true
};
var ajaxOpts = {
ajax: {
headers: {
Authorization: 'Basic ' + window.btoa(user.name + ':' + user.password)
}
}
};
var db = new PouchDB(url+'auth', pouchOpts);
db.login(user.name, user.password, ajaxOpts).then(function() {
return db.allDocs();
}).then(function(docs) {
//HERE I TRY TO CREATE THE NEW DATABASE
pouchDBService.sync(url+"newDatabase", user);
}).catch(function(error) {
console.error(error);
});
在我的邮袋服务中,我有:
var database;
//I call this function as app starts
this.setDatabase = function(databaseName) {
database = new PouchDB(databaseName, {
adapter: 'websql'
});
}
this.sync = function(remoteDatabase, user) {
var remoteDB = new PouchDB(remoteDatabase, {
auth: {
username: user.name,
password: user.password
},
skip_setup: true //without this I get the login popup! Why if I'm passing the auth params???
});
remoteDB.info().then(function (info) {
console.log(info);
database.sync(remoteDB, {live:true, retry: true})
})
}
有什么不对劲吗?感谢您的帮助
谢谢要在CouchDB服务器上创建数据库,您需要是管理员。您可以为此在服务器上创建一个小型自定义API(例如,使用小型节点http服务器),或者使用CouchDB插件。谢谢您的帮助。我认为couchperuser将是解决我问题的方法。无论如何,我不明白PockDB应该如何工作,因为我认为没有人会让他的数据库向世界开放。PockDB有很多应用程序。每个用户一个数据库的场景只是许多可能用途之一。另一个是服务器数据库部分的脱机缓存。在这种情况下,您只需使用从服务器到客户端的单向复制。或者,要共享公共数据,只需将所有客户端的数据库同步到单个服务器数据库。无论您有什么要求,都有许多可能的解决方案。有些问题可以通过将PockDB与CouchDb连接来解决,但其他问题只能通过第三层(如节点API)来解决。