NodeJS 发布和删除请求发送200,但不执行任何操作|Express Js [已关闭]

k3fezbri  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(108)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
7小时前关闭
Improve this question
我尝试用express做一个CRUD API,这是路由:

router.patch("/:id", (req, res) => {
  const id = req.params.id;
  const changes = req.body;

  if (service.getProduct(id) === undefined) {
    res.status(404).json({
      message: "Product not found",
    });
  } else {
    service.updateProduct(id, changes);
    res.json(service.getProduct(id));
  }
});

router.delete("/:id", (req, res) => {
  const id = req.params.id;

  if (service.getProduct(id) === undefined) {
    res.status(404).json({
      message: "Product not found",
    });
  } else {
    res.json(service.deleteProduct(id));
  }
});

这是为我正在处理的数据做所有工作的服务。

updateProduct(id, changes) {
    const index = this.products.findIndex((product) => product.id === id);

    this.products[index] = {
      ...this.products[index],
      ...changes,
    };
    return this.products[index];
  }

  deleteProduct(id) {
    const index = this.products.findIndex((product) => product.id === id);
    const product = this.products[index];
    this.products.splice(index, 1);
    return product;
  }
}

GET和POST工作得很好,但是当涉及到PATCH时,我只是得到我在主体中发送的信息,即使我的代码应该抓住这些信息并将其修补到已经存在的变量中,DELETE也是如此,它不会删除产品🤷🏼‍♂️(在 Postman 和失眠上尝试)。
我尝试对服务的UPDATE和DELETE功能进行故障排除,但我似乎找不到它的问题所在🤔,不要担心解析JSON主体,我已经在index.js中了

hc8w905p

hc8w905p1#

我发现给我带来麻烦的是下面这行:

const index = this.products.findIndex((product) => product.id === id);

由于某些原因,它没有按预期工作,所以我用这些行替换了服务,现在一切都工作并运行!

updateProduct(id, changes) {
    const product = this.products[id - 1];
    const newProduct = { ...product, ...changes };
    this.products[id - 1] = newProduct;
    return newProduct;
  }

  deleteProduct(id) {
    this.products.splice(id - 1, 1);
    return { message: "Product deleted" };
  }

我已经在验证id是否存在于路由中,所以索引已经是固有的id - 1,所以在最后似乎解决了我的问题,仍然不知道我的索引常量有什么问题,但会坚持我现在所做的。🤷🏼‍♂️

相关问题