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 (например, push модели) и что ваше представление не использует какое-либо хранилище браузера (локальное и т. д.)   -  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