Как написал Владимир
Для генерации и отдачи готового документа, должен быть создан базовый 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 минуты