2016-09-15 2 views
1

Итак, я использую udondan: jszip, cfs: collection, cfs: standard-packages и cfs: пакеты файловой системы в моем приложении meteor. Проблема в том, что я не могу хранить свои zip-файлы в FS.COllection. Вот некоторые из кода:JSZip и cfs: коллекция в приложении Meteor

//Defining the collection 
Reports = new FS.Collection('reports',{ 
stores: [new FS.Store.FileSystem('reports', {path: "~/public"})] 
}); 


//Trying to add a file to the collection 
var zip = new JSZip(); 
Reports.insert(zip); 

После запуска кода Im получаю эту ошибку:

Error: DataMan constructor received data that it doesn't support 

Есть ли способ, чтобы сделать эти пакеты работают друг с другом?

+0

Вы делаете вставку на клиент или сервер? – Waiski

ответ

1

Объект JSZip сам по себе не является файлом. Вы можете сгенерировать файл с помощью функции generateAsync. Тип файла, который вы хотите создать, зависит от того, хотите ли вы, чтобы это выполнялось на клиенте или сервере и как вы хотите использовать этот файл. Поддерживаемые типы файлов обеих библиотек являются: (в соответствии с документацией, я не проверял все эти сам)

  • Blob объекта (клиента только): { type: 'blob' }
  • Uint8Array: { type: 'uint8array' }
  • ArrayBuffer: { type: 'arraybuffer' }
  • Buffer объект (только сервер): { type: 'nodebuffer' }

Так, например, это должно работать:

zip.generateAsync({ type: 'arraybuffer' }) 
    .then(function (content) { 
    Reports.insert(content); 
    }); 
Смежные вопросы