首页 > 解决方案 > 通过 req.params.id 与 req.body.id 传递 id

问题描述

所以我最近开始学习后端,使用节点/表达式。我正在构建一个用于学习目的的小型 REST API,具有以下路线:

GET /api/products >> to display a list of products
GET /api/cart >> to display list of items inside the cart 
DELETE /api/cart/:id >> to delete an item from the cart 

现在,我希望能够使用 POST 方法将商品添加到购物车,当然应该是:

/api/cart >> and pass the item id in the body, so req.body.id 

或者

/api/cart/:id >> and pass the item id with req.prams.id ?? 

我知道这两种方法都有效,但有人告诉我,使用 POST 方法,最好通过正文传递它,所以我想了解原因,因为在这种特定情况下,我没有创建一个全新的项目(在那情况下我当然会通过正文传递数据),但我已经在产品列表中拥有该项目,所以我只想检索它并将其添加到购物车。如果我为这个api创建前端,其中一个会更好吗?或者整个事情是如何运作的?首选方法是什么?

谢谢

标签: javascriptnode.jsapiexpress

解决方案


您可以在正文中放置比在 url 中更多(多样化)的数据。您可以在正文中传递任何字符串(特殊字符),而在 url 中对它们进行编码会使您容易受到状态 414(请求 URI 太长)的影响。而且在传递数组和复杂对象时使用主体要容易得多:)


推荐阅读