Express.js应用程序错误:未找到删除发布路由

问题描述 投票:0回答:1

我正在使用blogging applicationExpress和MongoDB进行EJS(单击链接以查看GitHub回购)。

我无法通过AJAX删除帖子。

在我的[[Dashboard路由文件(routes\admin\dashboard.js)中,我有:

// Delete Post router.delete('/post/delete/:id', dashboardController.deletePost);
在我的

Dashboard

控制器中:exports.deletePost = (req, res, next) => { const postId = req.params.id; posts.findByIdAndRemove(postId, function(err){ if (err) { console.log('Error: ', err); } res.sendStatus(200); }); }
在表中列出该帖子的视图中,对于我拥有的每个帖子,均带有“编辑”和“删除”按钮:

<% if (posts) { %> <% posts.forEach(function(post) { %> <tr data-id="<%= post._id %>" class="d-flex"> <td class="col-1"></td> <td class="col-4 col-lg-5"> <%= post.title %> </td> <td class="col-2"></td> <td class="col-2"></td> <td class="col-3 col-lg-2 text-right"> <div class="btn-group"> <a href="#" class="btn btn-sm btn-success">Edit</a> <a href="#" class="btn btn-sm btn-danger delete-post" data-id="<%= post._id %>">Delete</a> </div> </td> </tr> <% }); %> <% } else { %> <tr> <td colspan="5">There are no posts</td> </tr> <% } %>

最后在public\assets\js\admin.js中,我有:

$(document).ready(function(){ $('.delete-post').on('click', function(evt){ evt.preventDefault(); let postId = $(this).data('id'); if(confirm('Delete this post?')) { $.ajax({ url: '/post/delete/' + postId, method: 'GET', success: function(deleteMsg){ $('tr[data-id="' + postId +'"]').fadeOut('250'); } }); } }); });

我具有足以使删除操作成功的事实,但事实并非如此。

我想念什么?

express mean-stack
1个回答
0
投票

我这样做是这样的>>,以获取完整的运行示例克隆updated node-cheat XPressBlog,然后运行节点索引,后接npm idelete添加到

routes / front-end / posts.js

,例如:// Delete Single Post router.delete('/:id', postsController.deleteSinglePost);

deleteSinglePost添加到

controllers / front-end / posts.js

,例如:exports.deleteSinglePost = (req, res, next) => { const {id} = req.params; res.send(`This will DELETE post with id : ${id}`); };
这是基于查看index.js来完成的,即:

const dashboardRoute = require("./routes/admin/dashboard"); app.use('/dashboard', dashboardRoute); const postsRoute = require('./routes/front-end/posts'); app.use('/', postsRoute);

curl -X DELETE http://localhost:3000/100

这将删除ID为100的帖子
© www.soinside.com 2019 - 2024. All rights reserved.