Javascript 帕格多次打印相同的值
这是我的哈巴狗代码:Javascript 帕格多次打印相同的值,javascript,node.js,pug,Javascript,Node.js,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/a
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)
}
})
问题是帕格多次显示同一列表元素。当我第一次加载页面时,它工作正常,只显示一次字符串,但当我重新加载页面时,我会看到重复的值。
例如,如果
yeniler
数组只包含一个名为hello
的元素,它将显示字符串hello
,但当我重新加载页面时,我会看到2个hello
s。谢谢阅读。我认为这里的语义有点错误:
for(x=0; users[x]; x++)
应该是:
for(x=0; users.length; x++)
看起来,
yenilerar
是在请求处理程序的范围之外定义的,因此它在请求之间保持不变,并起到全局变量的作用
它应该在请求处理程序中定义,在for
循环之前的某个位置:
const yenilerArr = []
唯一可以保持页面刷新(甚至是硬刷新)的是缓存/状态或数据库。请确保您不修改db(f.e.模型推送),并且您的视图不使用任何类型的浏览器存储(本地等),谢谢。我在推。