Javascript 如何检查IndexedDB数据库是否已经存在?

Javascript 如何检查IndexedDB数据库是否已经存在?,javascript,database,indexeddb,Javascript,Database,Indexeddb,我在餐馆网站(客户端项目)工作,面对这个问题,我想制作一个管理页面,显示客户下的所有订单以及我选择的方式,将订单详细信息保存在本地存储中,然后保存在这个索引中,然后显示(订单)在管理页面,所以我做了这个代码,它的工作都很好,我想保存订单和所有客户的详细信息 document.getElementById('submittheorder')。onclick=function(){ 设i=0; 常数versionDB=1; 设indexedDB=window.indexedDB | | window

我在餐馆网站(客户端项目)工作,面对这个问题,我想制作一个管理页面,显示客户下的所有订单以及我选择的方式,将订单详细信息保存在本地存储中,然后保存在这个索引中,然后显示(订单)在管理页面,所以我做了这个代码,它的工作都很好,我想保存订单和所有客户的详细信息

document.getElementById('submittheorder')。onclick=function(){
设i=0;
常数versionDB=1;
设indexedDB=window.indexedDB | | window.mozIndexedDB | | window.webkitIndexedDB | | window.msIndexedDB | | window.shimIndexedDB;
var open=indexedDB.open(“CustomersOrders”,versionDB);
open.onupgradeneeded=函数(){
设db=open.result;
let store=db.createObjectStore(“OrdersTable”{
密钥路径:“id”
});
let index=store.createIndex(“CIndex”、“全名”、“订单”、“房屋”、“道路”、“街区”);
};
open.onsuccess=函数(){
设db=open.result;
设tx=db.transaction(“OrdersTable”、“readwrite”);
let store=tx.objectStore(“OrdersTable”);
let index=store.index(“CIndex”);
储存({
全名:(sessionStorage.getItem(“Cfullname”),
订单:(sessionStorage.getItem(“订单”),
众议院:(sessionStorage.getItem(“CHouse”),
道路:(sessionStorage.getItem(“CRoad”),
Block:(sessionStorage.getItem(“CBlock”))
});
tx.oncomplete=函数(){
db.close();
location.href=“谢谢.html”;
};
}
}
现在的问题是我想检索所有订单和每个对象的详细信息到管理页面 第二个问题是,我想检查数据库是否已经存在,然后插入新对象而不是创建新数据库并只保存一个对象,简而言之,我只希望创建一个数据库,下次保存该数据库中的订单


谢谢:)

您可以将此逻辑放在处理升级事件的函数中。基本上有两种方法。您可以使用例如
db.objectStoreNames.contains()
检查对象存储和索引是否存在,也可以通过从数据库对象或事件对象访问版本属性来比较版本


例如,如果对象存储不存在,则只希望创建该对象存储。如果它还不存在,那么您就知道这是创建数据库的时候。

使用其中一个包装器库可以更容易地管理indexedDB。可以在中看到部分列表。它们通常也使用承诺,这比本机回调更简单