ionic-framework - Loki.js 在 Ionic 应用程序中丢失数据

标签 ionic-framework lokijs

我正在使用 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/

相关文章:

javascript - 无法使用 lokiJS 将数据库保存为 json 文件

javascript - Lokijs 会生成自己的 ID 吗?

angular - ionic 4 : Ion-checkbox checked not updating from ionchange

javascript - 如何删除 LokiJS 中的集合

mysql - Node mysql连接池导出

css - Ionic2 $font-family-base 不工作

node.js - Node-LokiJS : not all get requests are fulfilled, 请求状态永远处于待处理状态?

ionic-framework - 状态栏/标题出现在 iOS-11 中。我将如何隐藏它?

ios - 成功构建应用程序后出现 Xcode 存档错误

android-studio - ionic 电容器应用程序给了我很多错误