javascript - 这个路由这么写有什么问题?我想删掉一条记录
ringa_lee
ringa_lee 2017-04-17 16:35:04
0
2
325

我在roomview.html页面上想要删掉一条显示出来的记录,roomview.html部分代码如下:

房间列表

增加

<% rooms.forEach(function( room ){ %> <% }); %>

路由roomview.js对应删除部分代码如下:

router.get("/delete/:id",function(req,res){ console.log(req.params.id); Room.findById(req.params.id,function(err,doc){ if(!doc){ return next(new NotFound("Doc not found")) }else{ doc.remove(function(){ res.redirect("/roomview"); }) } }); });

不过当我点击删除房间后页面却显示如下:

Cannot GET /roomview/delete
ringa_lee
ringa_lee

ringa_lee

全部回复 (2)
巴扎黑

获取id

/roomview/delete?id=<%=room._id%> router.get("/delete", cb) req.query.id /roomview/delete/<%=room._id%> router.get("/delete/:id", cb) req.params.id

soonfy

    刘奇

    @soonfy 就是正解。

    你在路由里声明了按照path variable的形式要求参数:/delete/:id

    但在页面上却又用了query parameter的形式提供参数:/roomview/delete?id=<%=room._id%>

    那肯定会出错,最直观的表现就是你遇到错误,即:压根没找到路由/roomview/delete对应的处理器,因为你的处理器指定的规则是/delete/:id,而非/delete

    解决方案也简单,把页面里改成/roomview/delete/<%=room._id%>,应该就好了

      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!
      _id roomName roomContent roomCreateUser roomImg roomCreateDate roomJoinPeos roomChat
      <%= room._id%> <%= room.roomName %> <%= room.roomContent %> <%= room.roomCreateUser %> <%= room.roomImg %> <%= room.roomCreateDate %> <%= room.roomJoinPeos %> <%= room.roomChat %> 删除房间 | 更新房间信息