У меня есть это, которое так близко к работе:
app.post('/html-to-pdf', (req,res,next) => {
log.info('got request to convert html to pdf...');
const k = cp.spawn('pandoc', ['-f', 'html','--pdf-engine=xelatex','-t','latex']);
req.pipe(k.stdin, {end: true}).pipe(res, {end:true});
k.stdout.on('data', d => {
console.log('stdout:', String(d));
});
res.on('data', d => {
console.log('data:',d);
});
});
Я могу отправить маршрут html, используя:
$ curl -d '<html>hiiii</html>' -X POST localhost:3701/html-to-pdf
сервер получит данные, и конвертируйте его, и этот обработчик выведет правильную информацию:
k.stdout.on('data', d => {
console.log('stdout:', String(d)); // logs "hiiii"
});
, но проблема в том, что ответ никогда не будет отправлен! Это просто висит навсегда. Как видите, я использовал {end: true} для обоих вызовов канала, но это не помогло.