javascript - 這個(gè)路由這么寫有什么問題?我想刪掉一條記錄
問題描述
我在roomview.html頁(yè)面上想要?jiǎng)h掉一條顯示出來的記錄,roomview.html部分代碼如下:
<h1>房間列表</h1><p> <a href='http://www.aoyou183.cn/roomview/addroom'>增加</a></p><table> <thead> <tr><th>_id</th><th>roomName</th><th>roomContent</th><th>roomCreateUser</th><th>roomImg</th><th>roomCreateDate</th><th>roomJoinPeos</th><th>roomChat</th> </tr> </thead> <tbody> <% rooms.forEach(function( room ){ %> <tr><td><%= room._id%></td><td><%= room.roomName %></td><td><%= room.roomContent %></td><td><%= room.roomCreateUser %></td><td><%= room.roomImg %></td><td><%= room.roomCreateDate %></td><td><%= room.roomJoinPeos %></td><td><%= room.roomChat %></td><td><a href='http://www.aoyou183.cn/roomview/delete?id=<%=room._id%>'>刪除房間</a> | <a href='http://www.aoyou183.cn/roomview/modifyroom?id=<%=room._id%>'>更新房間信息</a></td> </tr> <% }); %> </tbody>
路由roomview.js對(duì)應(yīng)刪除部分代碼如下:
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'); })} });});
不過當(dāng)我點(diǎn)擊刪除房間后頁(yè)面卻顯示如下:
Cannot GET /roomview/delete
問題解答
回答1:獲取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
回答2:@soonfy 就是正解。
你在路由里聲明了按照path variable的形式要求參數(shù):/delete/:id,
但在頁(yè)面上卻又用了query parameter的形式提供參數(shù): /roomview/delete?id=<%=room._id%>。
那肯定會(huì)出錯(cuò),最直觀的表現(xiàn)就是你遇到錯(cuò)誤,即:壓根沒找到路由/roomview/delete對(duì)應(yīng)的處理器,因?yàn)槟愕奶幚砥髦付ǖ囊?guī)則是/delete/:id,而非/delete。
解決方案也簡(jiǎn)單,把頁(yè)面里改成/roomview/delete/<%=room._id%>,應(yīng)該就好了
相關(guān)文章:
1. node.js - node 客戶端socket一直報(bào)錯(cuò)Error: read ECONNRESET,用php的socket沒問題哈。。2. django - 后臺(tái)返回的json數(shù)據(jù)經(jīng)過Base64加密,獲取時(shí)用python如何解密~!3. 老哥們求助啊4. angular.js - 如何通俗易懂的解釋“依賴注入”?5. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?6. html5 - angularjs中外部模版加載無法使用7. 我的html頁(yè)面一提交,網(wǎng)頁(yè)便顯示出了我的php代碼,求問是什么原因?8. tp6表單令牌9. css3 - 請(qǐng)問一下在移動(dòng)端CSS布局布局中通常需要用到哪些元素,屬性?10. ubuntu PPA 更新老是不成功該怎么辦
