import.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. const logger = require('@alias/logger')('growi:services:ImportService'); // eslint-disable-line no-unused-vars
  2. const fs = require('fs');
  3. const path = require('path');
  4. const streamToPromise = require('stream-to-promise');
  5. class ImportService {
  6. constructor(crowi) {
  7. this.baseDir = path.join(crowi.tmpDir, 'downloads');
  8. this.extension = 'json';
  9. this.encoding = 'utf-8';
  10. this.per = 100;
  11. this.zlibLevel = 9; // 0(min) - 9(max)
  12. }
  13. /**
  14. * import a collection from json
  15. *
  16. * @memberOf ImportService
  17. * @param {object} Model instance of mongoose model
  18. * @param {string} filePath path to zipped json
  19. */
  20. async importFromZip(Model, filePath) {
  21. console.log(Model.collection.collectionName);
  22. console.log(filePath);
  23. const readStream = fs.createReadStream(filePath);
  24. const writeStream = fs.createWriteStream(path.join(this.baseDir, 'test.json'));
  25. readStream.on('data', (data) => { console.log(data); writeStream.write(data); writeStream.write('---------------'); console.log('---------------') });
  26. }
  27. }
  28. module.exports = ImportService;