После тестирования pouchDB для моего Ионного проекта я попытался зашифровать свои данные криптовакой. Но у меня есть проблема с использованием проектных документов. Я использовал следующий код:Использование проектных документов в pouchDB с помощью криптопакета
Один из моих дизайнерских документов:
var allTypeOne = { _id: '_design/all_TypeOne', views: { 'alle_TypeOne': { map: function (doc) { if (doc.type === 'type_one') { emit(doc._id); } }.toString() } } };
Для инициализации моей базы данных:
function initDB() { _db = new PouchDB('myDatabase', {adapter: 'websql'}); if (!_db.adapter) { _db = new PouchDB('myDatabase'); } return _db.crypto(password) .then(function(){ return _db; }); // add a design document _db.put(allTypeOne).then(function (info) { }).catch(function (err) { } }
Чтобы получить все документы type_one:
function getAllData { if (!_data) { return $q.when(_db.query('all_TypeOne', { include_docs: true})) .then(function(docs) { _data = docs.rows.map(function(row) { return row.doc; }); _db.changes({ live: true, since: 'now', include_docs: true}) .on('change', onDatabaseChange); return _data; }); } else { return $q.when(_data); } }
Этот код работает без использования крипто-чека, но если я вставляю _db.crypto (...), в моем списке не отображаются данные. Может кто-нибудь мне помочь? Заранее спасибо!
Я пробовал это раньше, но это не помогло. Тем временем я узнал, что проблема была слушателем изменений. Когда я его удалил, шифрование и даже проектные документы работали без каких-либо проблем. – user2836375