Я использую экспресс-вспышку для флеш-сообщений.Это работало отлично, пока я не использовал перенаправление на req.header ("Referer").В частности, я пытаюсь добавить товар в корзину, но не хочу добавлять его, если он уже есть в корзине.Следующий код беспокоит меня, так как я не понимаю его поведение.
router.get("/add/:id, (req, res) =>{
var backURL= req.header("Referer") || "/";
var cart= req.session.cart;
var productId= req.params.id;
var found=0;
cart.items.forEach(item =>{
if(item.id===productId){
found=1;}
})
if(found){
req.flash("error", "Item Already in Cart");
res.redirect(backURL);} else{
res.redirect(backURL); }
})
Это промежуточное ПО выполняет другие функции, такие как добавление товаров в корзину в случае их отсутствия.Эта часть работает хорошо, и благодаря найденной переменной console.logging, я уверен, что код всегда находит дубликаты, но он возвращает ошибки флэш-памяти не всегда.Я использую EJS в качестве движка просмотра.Кто-нибудь может помочь?Большое спасибо
PS Конечно, я передавал ошибки ejs с
router.use( (req,res,next)=>{
res.locals.error = req.flash("error");
next();)}