Pug отпечатва една и съща стойност няколко пъти

Ето моят код на мопс:

html
  head
    style
        include ../../public/css/admin/admin.css
  body
    .main
      .yeniler-kutu
        each yeni, index in yeniler
          li(class="yeniler")= yeni 
    script
      include ../../public/js/admin/admin.js 

Ето моя бекенд javascript код:

router.get("/index", async (req, res) =>
{
    try
    {
            const users = await User.find({});
            for(x=0; users[x]; x++)
            {
                if(users[x].gorev === "Menti" && !users[x].mentor)
                {
                    yenilerArr.push(users[x].name);
                }
            }
            res.status(200).send(pug.renderFile("./views/admin/admin.pug", 
            {
                yeniler: yenilerArr,
            })) 
    }
    catch(e)
    {
        res.status(400).send(e)
    }
})

Проблемът е, че pug показва един и същ елемент от списъка няколко пъти. Когато зареждам страницата за първи път, работи добре и показва низовете само веднъж, но когато презареждам страницата, виждам дублиращите се стойности. Например, ако масивът yeniler съдържа само един елемент, наречен hello, той показва низа hello, но когато презареждам страницата, виждам 2 hellos. Благодаря за четенето.


person Community    schedule 30.07.2020    source източник
comment
Единственото нещо, което може да продължи опресняването на страницата (дори трудно) е кеширане/състояния или db. Уверете се, че не модифицирате db (напр. натискане на модел) и че изгледът ви не използва никакъв вид хранилище на браузъра (локално и т.н.)   -  person bigless    schedule 31.07.2020
comment
Благодаря. Използвах натискане.   -  person    schedule 01.08.2020


Отговори (2)


Мисля, че има малка семантична грешка тук:

for(x=0; users[x]; x++)

би трябвало:

for(x=0; users.length; x++)
person kmgt    schedule 31.07.2020

Изглежда, че yenilerArr е дефиниран извън обхвата на манипулатора на заявки, следователно продължава между заявките и действа като глобална променлива.

Трябва да се дефинира вътре в манипулатора на заявки, някъде преди for цикъл:

const yenilerArr = []
person Anastazy    schedule 14.08.2020