首页 > 解决方案 > 将 Vs Post 放在 Node Js 中

问题描述

我现在正在尝试通过反应学习 NODEJS。

在正常情况下,编辑帖子的请求将是:

router.put("/:id", function(req, res) {
  Campground.findByIdAndUpdate(req.params.id, req.body.campground, function(
    err,
    updatedCamp
  ) {
    if (err) {
      res.redirect("/campgrounds");
    } else {
      res.redirect("/campgrounds/" + req.params.id);
    }
  });
});

随着 put 请求。

但是我在 post 请求中看到了另一种语法,如下所示:

router.route("/update/:id").post((req, res) => {
  Campground.findById(req.params.id).then(Campground => {
    Campground.username = req.body.username;
    Campground.description = req.body.description;
    Campground.duration = Number(req.body.duration);
    Campground.date = Date.parse(req.body.date);
    Campground.save()
      .then(() => res.json("Campground Updated"))
      .catch(err => res.status(400).json(`Error` + err));
  });
});

这两者有什么区别吗?

标签: node.jsreactjsexpress

解决方案


不在代码本身中。差异只是逻辑上的差异。在 REST-Conventions 中,发出 POST 请求以创建新资源,而 PUT 请求则用于交换现有资源。

在您的第一个示例中,将更新现有资源 ID。在您的第二个示例中,更新被定义为资源本身。由于更新本身就是资源,因此您必须发布新的更新而不是 PUT。

如果你想使用 RESTful,你应该使用 put。但是这两个动词在语义上没有区别。


推荐阅读