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

Myt*_*hli 13 javascript pouchdb

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

这样的用例是检查本地数据库是否已经存在,然后成功登录可选.

最好的祝福

HiD*_*Deo 9

确实有一个skip_setup选择.

文档所述,默认情况下,PouchDB将检查数据库是否存在,并尝试创建它(如果它还不存在).您可以将此选项设置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...
  });
Run Code Online (Sandbox Code Playgroud)

  • 在文档中,声明此选项仅适用于远程数据库,此问题与本地数据库有关.不幸的是,我尝试使用本地数据库的这个选项,它不起作用. (6认同)

小智 7

正如akofman所指出的,skip_setup不适用于本地数据库.所以我知道这样做的唯一方法是解决方法 - 检查新数据库是否为空,然后立即删除它.当然,如果有问题的数据库存在但是空的话,这无济于事......

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;
});
Run Code Online (Sandbox Code Playgroud)