You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何console.log(items)会执行两次?

为什么console.log(items)会执行两次?

你的这段代码里,console.log(items)只在数据库已有数据的else分支里执行,它跑两次的核心原因是这段查询逻辑被触发了两次,常见的情况有这几种:

  • 前端发起了重复请求:比如页面刷新两次、表单提交没阻止默认行为导致重复提交,或者页面内的AJAX请求重复发送。可以打开浏览器控制台的「网络」面板,检查是否有两个相同的请求发送到该路由。
  • 路由处理函数被重复注册:比如你在代码里多次写了app.get('/目标路由', (req, res) => { /* 你的这段查询代码 */ }),同一个路由绑定了两次处理逻辑,每次请求都会触发两次查询。
  • 中间件导致重复执行:如果路由前配置了中间件,中间件里不小心多次调用next(),或者中间件逻辑导致请求被二次处理,也会触发这段查询代码两次。

你可以做个简单验证:在Item.find()前面加一句console.log('开始执行数据库查询'),如果这句也打印两次,就说明整个路由逻辑被执行了两次,重点排查请求或路由注册的问题。

内容的提问来源于stack exchange,提问作者abhay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:19:56