我正在使用超链接删除我在主.ejs模板中显示的项目,但当我单击删除超链接时,它显示“Cannot GET /delete/6424 f79 c7 dd 4cd 07 ef 49 acae”错误。以下是我的超链接的代码:
main.ejs:
<% posts.forEach(function(post){ %>
<h3><%=post.title%></h3>
<p>
<%=post.content.substring(0, 100) + " ..."%>
<a href="/posts/<%=post._id%>">Read More ... </a>
<% if (adminUser) { %>
<a href="/delete/<%= post._id %>"method="DELETE">Delete</a>
</p>
<% } %>
<% }) %>
下面是app.js中的get请求:
app.get('/delete/:postid', isLoggedIn, function(req, res) {
const { postId } = req.params.postid;
ProjectDetails.findByIdAndDelete({
_id: postId,
function(err) {
if (err) {
console.log(err);
} else {
res.redirect('/main');
}
};
});
});
我曾经寻找过解决方案,但其中很多似乎都涉及到我不熟悉的restful api。有没有其他方法可以解决这个问题?
1条答案
按热度按时间dldeef671#
函数内部的第一行是错误的。使用
或
在请求中获得超时的原因是,在任何错误情况下,您都不会发送回复。
如果您不发送回复,客户端在请求
GET /...
时将出现超时错误。您应该始终发送回复,即使是在错误情况下,因此只需记录节点应用程序的错误并将客户端重定向到
/main
。