Loki.js在Ionic Apps中丢失了数据

时间:2016-02-21 03:08:18

标签: ionic-framework lokijs

我正在使用loki.js开发一个Ionic应用程序,但每次刷新应用程序按f5我都会丢失存储在loki数据库中的所有数据。 为什么会这样?

我在离子应用程序中没有使用chache。

2 个答案:

答案 0 :(得分: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"内存中的数据将每5秒写入JSON文件(您可以根据需要调整此值)。

修改 我添加了用于将新文档保存到我的集合中的代码,即使页面刷新,数据也能正确存储。我用" autosave"在db设置中,也许您也可以设置它,以防在明确触发保存时存在未正确捕获的路径。

答案 1 :(得分:0)

将文件放在/ Users / xxx目录中,然后发生了神奇的事情,程序正常运行。