Обработчик читает файл шаблона через readFileSync на каждом запросе
app.get('/invoice/:id', (req, res) => {
const template = fs.readFileSync('./templates/invoice.html', 'utf8');
res.send(render(template, req.params.id));
});
Под нагрузкой время ответа растёт у всех ручек сервиса, а не только у этой. Почему?
- Синхронное чтение останавливает event loop для всех запросов
- readFileSync открывает файл без кэша и тратит память
- Express выполняет обработчики по очереди в порядке прихода
- Шаблон слишком большой для отправки через res.send
