node.js - 如何允许用户删除帖子?

标签 node.js http

下面我有一个用户可以发出的帖子请求,如果删除了名为 _method 的隐藏表单项,它将向我自己的服务器发出一个不同路由的请求并删除帖子从数据库。这个过程应该如何进行?

 app.post("/posts/:id/delete", function(req, res){
  if(req.body._method = "delete"){
    request({
      "method": "delete",
      "url": "/posts/"+req.param.id
    }, function(err, response, body){
      res.redirect("/posts");
    });
  }
});

app.delete("/posts/:id", function(req, res){
  //delete it from the database
  res.redirect("/posts");
});

最佳答案

假设 Express/Connect, methodOverride() 可能是最简单的选择:

app.use(express.bodyParser());
app.use(express.methodOverride());

不过,<form action>和路线 path应该匹配:

<form action="/posts/{{id}}" method="post">
    <input type="_method" value="delete" />
    <!-- ... -->
</form>
app.delete('/posts/:id', function (req, res) {
  //delete it from the database
  res.redirect("/posts");
});

[更新] 对于 Express 4 和更新版本,此中间件已移至 method-override .

关于node.js - 如何允许用户删除帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14918734/

相关文章:

java - 支持具有相同 servlet 的两个 URI

javascript - Discord Api 必须为客户端提供有效意图

javascript - 带有扩展拉丁字母的正则表达式 (ä ö ü è ß)

javascript - 使用内部异步函数的异步测试应该失败

api - 用于测试 API 的 cURL 的 GUI 前端

使用 Requests 的 Python HTTP 请求二进制数据

cocoa - 将 PNG 图像转换为可以通过 NSSockets 发送的数据

javascript - 无法在 Angular2 中进行 http 服务调用?

javascript - “汇总”未被识别为内部或外部命令

node.js - Express.js 中的 CORS 和访问控制允许方法?