Express JS中GET请求重复发送两次的问题排查求助
问题根因
你遇到的请求重复调用问题,根源是makePngScreenshot方法对同一个目标URL发起了两次GET请求:
- 第一次是代码中主动调用的
axios.get(url, null) - 第二次是
Pageres工具执行src()方法加载页面截图时,内部自动发起的HTTP请求
19个meter元素每个触发2次请求,刚好对应38次路由日志打印。
修复方案
如果你写axios.get的目的只是提前触发页面生成、没有其他额外业务逻辑,直接删除这行冗余代码即可,Pageres加载URL时会自动完成页面请求:
async makePngScreenshot(recap, url, meterId, filename) { // 移除多余的axios.get调用 const destination = "public/images/" + recap.operation.name + "/" + recap.date_ini + "_" + recap.date_end + "/" + meterId return new Pageres({ delay: 2, filename: filename }) .src(url, ['1300x650'], { crop: true }) .dest(destination) .run() }
额外注意项
你当前的GET路由没有返回响应的逻辑,长时间挂起可能会触发请求超时,建议补充res.end()或者对应页面返回逻辑,避免Pageres截图失败。
内容的提问来源于stack exchange,提问作者Juliatzin
相关产品推荐
相关产品推荐

