5

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

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

4

2 回答 2

2

可能是当您按 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 文件(您可以根据需要调整此值)。

编辑 我添加了用于将新文档保存到我的集合中的代码,即使页面刷新,数据也被正确存储。我在数据库设置中使用“自动保存”,也许您也可以设置它,以防在您显式触发保存时没有正确捕获路径。

于 2016-02-21T17:00:31.463 回答
0

把文件放到/Users/xxx目录下,神奇的事情发生了,程序正常运行了。

于 2019-10-21T06:38:09.070 回答