const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); const app = express(); const templates = require('./templates'); const renderer = require('./renderer'); const {getPdfPath} = require('./utils'); app.use(bodyParser.json()); app.options('/pdf/generate/:template', cors()); app.post('/pdf/generate/: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, pdfFilePath) => { if (err) { console.error('Error:', err.code, 'for', req.url); res.sendStatus(500).end('Something went wrong while baking the PDF'); return; } const id = pdfFilePath.replace('/tmp/', ''); res.send({id: id}); res.end(); }); }); }); app.options('/pdf/:id', cors()); app.get('/pdf/:id', cors(), (req, res) => { const {id} = req.params; res.sendFile(getPdfPath(id)); }); app.use(express.static('dist')); app.listen(5000);