Я создаю стековое приложение MEAN. У меня есть сомнения относительно эффективности моего приложения.
В настоящее время я хочу загрузить PDF-фактуру объекта. Он находится на внешнем интерфейсе и также хранится в базе данных.
Вот пример объекта:
{"_id":"5cdc3c5a375eeb0b904d6b26","userId":"Vegeta","items":[{"_id":2.5106652231454363,"title":"Eragon","price":40.99,"description":"First Book","imagePath":"<path>","userId":"Vegeta","quantity":2}],"__v":0}
В настоящее время я создаю счет-фактуру, отправляя объект из внешнего интерфейса через httprequest.
const userparams = {
params: {
//object
}
};
this.httpclient.get<{status: number, user: User}>('http://localhost:3000/users', userparams)
Затем я получаю его на сервере, создаю PDF и отправляю его обратно клиенту
router.get('/orders/invoice/:_id', checkAuth, (req, res, next) => {
const invoiceName = 'Invoice-' + req.user._id + '-' + req.params._id + '.pdf';
//const invoiceName = 'invoice1.pdf'
const invoicePath = path.join('backend', 'invoices', invoiceName);
//The following actually creates a ReadStream
const pdfDoc = new PDFDocument();
pdfDoc.pipe(fs.createWriteStream(invoicePath));
pdfDoc.pipe(res);
pdfDoc.text('Vegeta Order');
pdfDoc.end();
}
Однако меня беспокоит проблема масштабируемости. Будет ли лучше, если я получу объект из самой базы данных?
Примечание: - объект не получит больше, чем несколько десятков килобайт
Я знаю, что это, вероятно, очевидно для многих из вас, но я все еще не очень разбираюсь в проблеме http-запросов и том, сколько данных они могут обработать, прежде чем показать проблемы с эффективностью. Поэтому, пожалуйста, помогите мне.