Loki.js потерял данные в Ionic Apps
Я разрабатываю приложение Ionic, используя loki.js, но каждый раз, когда оно обновляет приложение, нажимаю f5, и я теряю все данные, хранящиеся в базе данных loki. Почему это случилось?
Я не использую chache в моем ионном приложении.
1 ответ
Возможно, при нажатии клавиши F5 данные, сохраненные в памяти, еще не записываются в целевой файл json. Вы можете попытаться явно установить временной диапазон для сохранения данных при создании экземпляра loki:
var _db = new Loki('./database/db.json', {
autoload: true,
autosave: true,
autosaveInterval: 5000 // 5 secs
});
function add(newPatient) {
return $q(function(resolve, reject) {
try {
var _patientsColl = GetCollection(dbCollections.PATIENTS);
if (!_patientsColl) {
_patientsColl = _db.addCollection(dbCollections.PATIENTS,{indices:['firstname','lastname']});
}
_patientsColl.insert(newPatient);
console.log('Collection data: ', _patientsColl.data);
resolve();
}
catch (err) {
reject(err);
}
});
}
function GetCollection(collectionName){
return _db.getCollection(collectionName);
}
С помощью "autosaveInterval" данные в памяти будут записываться в файл JSON каждые 5 секунд (вы можете настроить это значение по своему усмотрению).
РЕДАКТИРОВАТЬ Я добавил код, который я использую для сохранения нового документа в моей коллекции, и даже при обновлении страницы данные сохраняются правильно. Я использую "автосохранение" в настройках БД, может быть, вы также можете установить его, если есть путь, который неправильно корректируется, когда вы явно запускаете сохранение.
Поместите файл в каталог /Users/xxx - тут произошли волшебные вещи, программа работает нормально.