const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); const app = express(); const templates = require('./templates'); const renderer = require('./renderer'); app.use(bodyParser.json()); app.options('/generate/pdf/:template', cors()); app.post('/generate/pdf/:template', cors(), (req, res) => { const templateName = req.params.template; const options = req.body; templates.get(templateName, options, (err, texDocument) => { if (err) { console.error('Error:', err.code, 'for', req.url); res.sendStatus(500).end('Something went wrong while generating Tex source'); return; } renderer(texDocument, (err, pdf) => { if (err) { console.error('Error:', err.code, 'for', req.url); res.sendStatus(500).end('Something went wrong while baking the PDF'); return; } res.setHeader('Content-Type', 'application/pdf'); res.send(pdf); res.end(); }); }); }); app.use(express.static('dist')); app.listen(5000);