Задать вопрос

Как использовать npm пакет нас сайте?

Нужно на существующем сайте (PHP) добавить возможность сохранить страничку в вордовский файл docx
посмотрел разные варианты - понял, что проще всего будет использовать что то типа officegen

Но вообще никак не врублюсь как его использовать на сервере
Сайт на впске, нода стоит все норм

В мануале написано npm install officegen
А потом API сразу var officegen = require('officegen');

что то я пропускаю :)
не могу понять как его использовать
нужно вначале компилировать? как подключить к странице?
короче туплю, помогите плиз :)
  • Вопрос задан
  • 557 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Слишком мало информации, вы где документ хотите генерить, на сервере ? Тогда сервер должен быть написан на node.js, если не хочется переписывать весь сервис, напишите отдельный микросервис для генерации документов и обращайтесь к нему из вашего PHP сервиса.
https://learn.javascript.ru/screencast/nodejs
Если работать должно на клиенте, ну тогда задайте вопрос автору, каким образом можно подключить либу для использования на клиенте.
Ответ написан
Комментировать
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Как написал Владимир
Для генерации и отдачи готового документа, должен быть создан базовый http сервер на nodejs

const
    finalhandler = require('finalhandler'),   // пакет нужно будет поставить через npm
    http = require('http'),
    officegen = require('officegen');  // пакет нужно будет поставить через npm
    Router = require('router'),  //  пакет нужно будет поставить через npm 
   // создаем сервер и биндим роутеры на все ответы
    server = http.createServer(function onRequest(req, res) {
          router(req, res, finalhandler(req, res));
    });  

// внутри метода пишем свой код с этой либы, я особо не вникал взял пример из документации
router.get('/generate-pptx', function(request,response) {
  response.writeHead ( 200, {
    "Content-Type": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
    'Content-disposition': 'attachment; filename=surprise.pptx'
    });

  var pptx = officegen ( 'pptx' );

  pptx.on ( 'finalize', function ( written ) {
      // ...
      });

  pptx.on ( 'error', function ( err ) {
      // ...
      });

  // ... (fill pptx with data)

  pptx.generate ( response );
});
// слушаем запросы на 3000 порту
server.listen({port: 3000});

Имя сайта:3000/generate-pptx
запускать сервер любым привычным способом мне нравится pm2 start server.js
таймаут ответа по умолчанию в Nodejs 2 минуты
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы