Node.js Express应用删除博客后重定向失效问题求助
Node.js Express 删除博客后重定向失败问题
问题现象
删除博客文章成功后,无法重定向到/blogs页面,停留在已删除的/blogs/:id页面,触发报错。
后端代码
app.delete('/blogs/:id',(req,res)=>{ const id = req.params.id; Blog.findByIdAndDelete(id) .then((result)=>{ res.json({ redirect: '/blogs'}) }) .catch((error)=>{ console.log(error) }) })
客户端代码
<script> const trashcan = document.querySelector('a.delete'); trashcan.addEventListener('click',(event)=>{ const endPoint = `/blogs/${trashcan.dataset.doc}`; fetch(endPoint,{ method: 'DELETE' }) .then((response)=>{response.json()}) .then((data)=> console.log(data)) .catch((error)=>{ console.log(error); }) }) </script>
问题原因
- 点击
<a>标签时未阻止默认跳转行为,导致页面仍会跳转到已删除的/blogs/:id页面 - 客户端仅打印了后端返回的重定向数据,未执行实际的页面跳转操作
解决步骤
修改客户端代码,补充阻止默认行为和执行重定向的逻辑:
<script> const trashcan = document.querySelector('a.delete'); trashcan.addEventListener('click',(event)=>{ // 阻止a标签默认跳转行为 event.preventDefault(); const endPoint = `/blogs/${trashcan.dataset.doc}`; fetch(endPoint,{ method: 'DELETE' }) .then((response)=> response.json()) .then((data)=> { // 根据后端返回路径执行重定向 window.location.href = data.redirect; }) .catch((error)=>{ console.log(error); }) }) </script>
MERN进阶学习建议
- 核心技术深度强化:
- 深挖Express中间件机制,自定义权限校验、全局错误捕获、日志记录中间件
- 掌握MongoDB聚合管道、索引优化,熟练使用Mongoose的事务处理、Schema关联设计
- 精通React Hooks(useContext、useReducer、自定义Hooks),对比Redux Toolkit、Zustand等状态管理方案的适用场景
- 全链路流程搭建:
- 实现JWT认证+角色权限控制的完整流程,包括前端请求拦截、后端校验逻辑
- 学习RESTful API规范,尝试GraphQL方案,理解两种接口设计的优劣
- 掌握前后端联调技巧,用Chrome DevTools、Postman分析请求响应、排查问题
- 工程化与性能优化:
- 学习前端打包优化(Vite/Webpack)、代码分割、懒加载,提升页面加载速度
- 了解后端性能优化:Redis缓存、数据库读写分离、接口限流策略
- 尝试将MERN应用部署到云服务,配置Nginx反向代理、SSL证书
- 实战项目驱动:
- 从零搭建完整MERN项目(如电商后台、社交平台),覆盖CRUD、文件上传、权限控制等核心功能
- 参与开源项目或模拟企业需求,熟悉Git Flow协作规范、代码评审流程
内容的提问来源于stack exchange,提问作者yzkael
相关产品推荐
相关产品推荐

