浏览器发起fetch GET请求时Express侧Pug模板不渲染问题排查
开发场景与技术栈
- 项目目标:开发按日期维度从数据库筛选数据的小型功能(为简化展示,省略数据库相关业务逻辑)
- 后端实现:Express 框架搭配 Pug 模板引擎
- 前端实现:原生 Fetch API
- 测试环境:Chrome 浏览器
具体实现逻辑
- 前端页面
getDates.html提供起止日期选择表单,用户选定日期点击确认按钮时,通过 Fetch 向对应动态路由发起 GET 请求;请求配置为指定 GET 方法、mode: 'no-cors',已配套添加请求错误捕获逻辑 - 后端
index.js完成基础配置:托管静态资源、配置 Pug 模板引擎的视图文件路径;路由规则为:根路由返回getDates.html页面,带两个动态参数的路由/:p1/:p2会根据传入的起止日期筛选数据,将结果处理为表格渲染所需的二维结构后,调用res.render('report')渲染 Pug 格式的报告页面
异常现象观测
- 后端控制台日志显示数据筛选、结构预处理流程完全正常,前端控制台也无报错,但通过 Fetch 发起请求时,Pug 渲染的页面并未在浏览器端加载展示
- 对照测试结果:直接在浏览器地址栏输入完整的带日期参数的路由地址(如
http://localhost:5000/2021-04-01/2021-04-10)时,Pug 模板可正常渲染展示
核心待解疑问
- 前端当前的 Fetch 请求配置是否存在问题,导致无法正常获取并展示渲染结果?
- 后端逻辑是否存在阻碍模板正常渲染的问题?
内容的提问来源于stack exchange,提问作者Nizamuddin Shaikh
相关产品推荐
相关产品推荐

