我正在使用 loki.js 开发一个 Ionic 应用程序,但每次刷新应用程序时按 f5 我都会丢失存储在 loki 数据库中的所有数据。
为什么会发生?
我在我的 ionic 应用程序中没有使用 chache。
最佳答案
可能是当您按 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”,内存中的数据将每 5 秒写入一次 JSON 文件(您可以根据需要调整此值)。
编辑
我添加了用于将新文档保存到我的集合中的代码,即使页面刷新,数据也能正确存储。我在数据库设置中使用“自动保存”,也许您也可以设置它,以防在您明确触发保存时没有正确捕获路径。
关于ionic-framework - Loki.js 在 Ionic 应用程序中丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531818/