Javascript 检查本地数据库是否存在

Javascript 检查本地数据库是否存在,javascript,pouchdb,Javascript,Pouchdb,问题很简单,但即使通过互联网和PockDB源代码进行彻底搜索,我也找不到检查本地数据库是否存在的函数 这种情况的用例是检查本地数据库是否已经存在,然后选择成功登录 致以最诚挚的问候确实有一个跳过设置选项可用 如中所述,默认情况下,PockDB将检查数据库是否存在,如果数据库还不存在,则尝试创建它。您可以将此选项设置为true跳过此设置 启用此选项后,如果在查询数据库信息时数据库不存在,则会出现错误,例如: const db = new PouchDb('DB_URL_OR_NAME', { sk

问题很简单,但即使通过互联网和PockDB源代码进行彻底搜索,我也找不到检查本地数据库是否存在的函数

这种情况的用例是检查本地数据库是否已经存在,然后选择成功登录


致以最诚挚的问候

确实有一个
跳过设置
选项可用

如中所述,默认情况下,PockDB将检查数据库是否存在,如果数据库还不存在,则尝试创建它。您可以将此选项设置为
true
跳过此设置

启用此选项后,如果在查询数据库信息时数据库不存在,则会出现错误,例如:

const db = new PouchDb('DB_URL_OR_NAME', { skip_setup: true });

db.info()
  .then(() => {
    // The database exists.
    // Do something...
  })
  .catch(e => {
    // No database found and it was not created.
    // Do something else...
  });

正如akofman指出的,skip_设置不适用于本地数据库。因此,我知道的唯一方法是一种变通方法——检查新数据库是否为空,然后立即将其删除。当然,如果有问题的数据库存在但为空,则这没有帮助

const testdb = new PouchDB('testdb_name');

testdb.info().then(function (details) {
if (details.doc_count == 0 && details.update_seq == 0) {
    alert ('database does not exist');
    testdb.destroy().then (function() {console.log('test db removed');});
}
else alert ('database exists');
})
.catch(function (err) {
   console.log('error: ' + err);
return;
});

我需要确认一个数据库已从我的客户端浏览器中删除。问题是您需要创建数据库来删除它

Pocket存储数据的默认方式(至少在Chrome上)是在前缀为_Pocket_2;的indexedDB中。因此,我只需删除indexedDB数据库

这是我的密码。它返回一个承诺以匹配数据库语法

函数删除数据库(dbName){
返回新承诺((解决、拒绝)=>{
var req=indexedDB.deleteDatabase(“U邮袋”+dbName);
req.onsuccess=函数(){
解析(空)
};
req.onerror=函数(){
拒绝(新错误(“有错误”))
};
req.onblocked=函数(){
拒绝(新错误(“操作被阻止”))
};
});

}
很有趣。我尝试了info(),但没有跳过创建数据库的设置。谢谢你指出这个组合。工作起来很有魅力。在文档中,说明此选项仅适用于远程数据库,此问题与本地数据库有关。不幸的是,我在本地数据库中尝试了此选项,但它不起作用。正如@akofman所说,问题是关于本地数据库的,“跳过设置”在这里不适用。仍然没有解决方案吗?