javascript - 这个路由这么写有什么问题?我想删掉一条记录
ringa_lee
ringa_lee 2017-04-17 16:35:04
[Node.js讨论组]

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

<h1>房间列表</h1>
<p>
    <a href="/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="/roomview/delete?id=<%=room._id%>">删除房间</a> | <a href="/roomview/modifyroom?id=<%=room._id%>">更新房间信息</a></td>
    </tr>
    <% }); %>
    </tbody>

路由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%>,应该就好了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号