я сохраняю данные в моем сеансе, когда я нашел продукт в моей базе данных, например, такой:
const express = require('express');
const sessionPos = require('express-session');
const appPos = express();
appPos.use(sessionPos({secret: 'ssshhhhh',saveUninitialized: true,resave: true}));
var sess;
router.post('/searchProduct', function(req, res) {
var query = { Code: req.body.searchInput };
EventProduct.find(query ,function(err, products) {
if (err) throw err;
var prod = {
Name: products[0].Name, //name of products
Price: products[0].Price, //price of products
Avatar: products[0].avatar, //images of products
};
sess = req.session; //intialize session
tab.push(prod); // create dynamically table
sess.searchInput=tab; //add table to session (name of table in session is :searchInput)
res.redirect('/pos'); //redirect to pos route where products are displaying
});
});
На странице pos я хочу создать 3 массива Имени, Цены и изображения продуктов для отображения нас на pos страница, но я не знаю, как добавить имя продукта в массив "Таблица имен" ...
let nameTable = priceTable = ImageTable = []; //initialise array's
router.get('/pos', function(req, res) {
sess= req.session; //initialize session
console.log(sess.searchInput); //display array of products
// what i want to do
// i want to do something like this :
// for (var i = 0; i < sess.searchInput.length; i++) { //i can't access to length property
// let j = sess.searchInput[i].Name;
// nameTable.push(j); // here i want to display ['addidas','Canon']
// }
res.render('layouts/pos',{
nameTable:nameTable //send array table to pos.ejs page
});
}
отображаемый массив:
[ { Name: 'adidas',
Price: 9800,
Avatar: 'avatar-1584883890430.png' },
{ Name: 'Canon',
Price: 5000,
Avatar: 'avatar-1585048244190.png' } ]
Мой код в поз.e js Страница, мне нужно al oop для отображения массива, но я не знаю, как это сделать
<ul>
<% if( (nameTable) && (nameTable != "") ){ %>
<li class="item">
<div><h3 class="name"><%= nameTable %></h3></div>
</li>
<%}%>
</ul>