Введите здесь больше места:
Если у вас есть доступ к серверу Express, почему вы не можете создать маршрут, который извлекает все продукты, и для каждого уникального продукта генерируется небольшой HTML-файл, содержащий имя, идентификатор, цена и QR-код?Затем Express может скомпилировать весь HTML-код и отправить его в браузер.
app.get('/products/print_stickers', function(req, res, next){
// below is psuedo code
var products_array = database.getAllProductInfo();
res.render('print_page', {
products: products_array // pass data to mustahce template
});
})
Затем в файле усов print_page вы просто перебираете информацию, полученную с сервера.Если он содержит данные для всех продуктов, то мы можем создать html-наклейки для каждого продукта на одной странице!
var sticker_html = `
<ul>
{{#.}}
<li>
<div class="left_side">
${new QRCode("output", {
text: 'http://mywebsite/product/id/{{product_id}}', // using {{ mustache }} to insert product id
width: 256,
height: 256,
colorDark : "#04243c",
colorLight : "#FFFFFF",
correctLevel : QRCode.CorrectLevel.H
})}
</div>
<div class="right_side">
<p>{{name}}</p>
<p>{{date}}</p> // using {{ mustache }} to insert product information
<p>{{price}}</p>
</div>
</li>
{{/.}}
</ul>;
`;
Mustache.render(tmp, products_array);
Итак, на этом этапе вы перейдете на эту страницу, и сервер получит продукты, сгенерирует HTML для каждого уникального элемента, отправит его в ваш браузер, распечатает его, затем использует ножницыразрезать их и выложить там, где они вам нужны.Если вам нужно просто напечатать одну наклейку, вы можете использовать необязательный параметр запроса с идентификатором продукта и сказать if product_id, then only get 1 product from DB, generate sticker html as normal
.