var db = new Dexie(app.settings.unpublishedBooksDb);
db.version(1).stores({
friends: "++id,name,shoeSize"
});
db.open();
db.close();
У меня есть база данных precreated IndexedDB используя код выше, а затем на другую точку зрения в приложении, нужно добавить строку в таблицу.Dexie.js не проведение .Add сделок
var db = new Dexie('myDb');
db.open().then(function() {
console.log ('opened'); //this works
db.friends.add({name:"Fredrik"}); //this doesnt do anything and adding a catch doesn't throw an error either
}).finally(function() {
db.close();
});
Я пробовал использовать .transaction
, но все тот же. Если я попытаюсь использовать консоль Chrome, я получаю сообщение об ошибке: Невозможно прочитать свойство add of undefined
Спасибо Дэвид, что делает работу! Я просто должен создать свой собственный метод, который открывает db после определения той же схемы каждый раз, когда мне нужно, чтобы –
Если нет других веских причин (я не говорю, что их не было), я бы предложил установить db в одном месте и всегда использовать один и тот же экземпляр. Несмотря на то, что он определяет схему в уже открытой базе данных, это не повредит - она не попытается воссоздать индексы - она выяснит, создается ли db или нет, и при необходимости создавайте таблицы и индексы. Если вы используете несколько экземпляров db, не забудьте закрыть их, когда закончите. В противном случае у вас будут подключения к db, которые могут заблокировать другой db от обновления или удаления. –