**关闭。**此题需要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中了
1条答案
按热度按时间hc8w905p1#
我发现给我带来麻烦的是下面这行:
由于某些原因,它没有按预期工作,所以我用这些行替换了服务,现在一切都工作并运行!
我已经在验证id是否存在于路由中,所以索引已经是固有的
id - 1
,所以在最后似乎解决了我的问题,仍然不知道我的索引常量有什么问题,但会坚持我现在所做的。🤷🏼♂️