const express = require('express'); const bodyParser = require('body-parser'); const app = express(); const templates = require('./templates'); const renderer = require('./renderer'); const {getPdfPath} = require('./utils'); app.use(bodyParser.json()); app.options('/api/pdf/generate/:template'); app.post('/api/pdf/generate/:template', (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('/api/pdf/:id'); app.get('/api/pdf/:id', (req, res) => { const {id} = req.params; res.sendFile(getPdfPath(id)); }); app.use(express.static('../client/build')); app.listen(5000);