如果未定义,则将值存储到 indexedDB
Storing value to indexedDB if it is not defined
我正在尝试检查服务工作者在索引数据库中是否有 'uid' 的记录。如果没有定义,我需要给它加一个值。
这是我的代码,我已经尝试过在其他问题和网站上找到的一些方法,但 none 有效。
function checkUid() {
console.log('checking uid...');
var request = indexedDB.open('db',1);
request.onsuccess = function(event) {
var db = event.target.result;
var store = db.createObjectStore('Users', {keyPath:"users"});
var transaction = event.target.transaction;
db.transaction( '' ).objectStore( '' ).get( 'uid' ).onsuccess =
function(uid)
{
if (uid) {
console.log('uid found!');
console.log(uid);
console.log('uid end');
} else {
console.log('not found!');
db.transaction( '' ).objectStore( '' ).set( 'uid', 'aaaaa' );
console.log('uid end');
}
}
}
我该怎么做?
此代码打开名为 example
的数据库,如果需要创建名为 users
的对象存储,从该存储中获取具有键 x123
的对象,并创建对象(如果尚不存在)。
function checkUid() {
let openRequest = indexedDB.open("example")
openRequest.onupgradeneeded = () => {
console.log("update needed")
openRequest.result.createObjectStore("users")
}
openRequest.onsuccess = () => {
console.log("opened database")
let store = openRequest.result.transaction("users", "readwrite").objectStore("users")
let uid = "x123"
let getRequest = store.get(uid)
getRequest.onsuccess = () => {
let result = getRequest.result
if (result) {
console.log("found:", result)
} else {
console.log("not found")
store.add("aaaaa", uid)
}
}
}
}
使用 put()
而不是 set()
,它将更新条目,如果条目不存在则创建一个。
https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/put
我正在尝试检查服务工作者在索引数据库中是否有 'uid' 的记录。如果没有定义,我需要给它加一个值。
这是我的代码,我已经尝试过在其他问题和网站上找到的一些方法,但 none 有效。
function checkUid() {
console.log('checking uid...');
var request = indexedDB.open('db',1);
request.onsuccess = function(event) {
var db = event.target.result;
var store = db.createObjectStore('Users', {keyPath:"users"});
var transaction = event.target.transaction;
db.transaction( '' ).objectStore( '' ).get( 'uid' ).onsuccess =
function(uid)
{
if (uid) {
console.log('uid found!');
console.log(uid);
console.log('uid end');
} else {
console.log('not found!');
db.transaction( '' ).objectStore( '' ).set( 'uid', 'aaaaa' );
console.log('uid end');
}
}
}
我该怎么做?
此代码打开名为 example
的数据库,如果需要创建名为 users
的对象存储,从该存储中获取具有键 x123
的对象,并创建对象(如果尚不存在)。
function checkUid() {
let openRequest = indexedDB.open("example")
openRequest.onupgradeneeded = () => {
console.log("update needed")
openRequest.result.createObjectStore("users")
}
openRequest.onsuccess = () => {
console.log("opened database")
let store = openRequest.result.transaction("users", "readwrite").objectStore("users")
let uid = "x123"
let getRequest = store.get(uid)
getRequest.onsuccess = () => {
let result = getRequest.result
if (result) {
console.log("found:", result)
} else {
console.log("not found")
store.add("aaaaa", uid)
}
}
}
}
使用 put()
而不是 set()
,它将更新条目,如果条目不存在则创建一个。
https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/put