在node.js中使用request.body或request.params有没有区别?

我想知道在从客户端发送数据到服务器时是否有任何使用node.js中的request.body或request.params偏好?

你可以在网页中放入更多(不同的)数据。 你可以传递任何string(特殊字符)在身体,而在URL中编码会让你容易受到状态414(请求URI太长)。 在传递数组和复杂对象时使用body更加容易:)

我认为最好的做法是在做get时使用params,但是使用body来进行post,put和delete。

一个样本得到

app.get "/api/items/:id", (req, res) -> itemController.getItem req.params.id, (item, error) => if !error res.send 'item': item else res.send 'error: error 

一个示例post

 app.post "/api/items", (req, res) -> itemController.saveItem req.body, (item, error) => if !error res.send 'item': item else res.send 'error: error 

您也可以添加validation,但这是我一直在写我所有的端点。

这个问题已经过了四年多了,但是我仍然会留言,以确保有人在这个post上有更多的信息来更好地理解这个概念。

req.body和req.params服务器有两个不同的用途。

当你需要发送数据到服务器(存储它或者某个东西)时,你会使用req.body,就像在一个服务器的“POST”请求中一样。 例如,检查以下内容:

你正在做一个“POST”请求mongodb保存博客文章。 在这种情况下,您会希望获取请求正文中的数据并将其发送到数据库。 在这里你可以使用req.body

 app.post("/blog", function(req, res){ var data = req.body.blog; .... // code to send data to the db .... }); 

req.params用于当你想从URL中提取“参数”。 假设你想提取一个“id”,这是url的一部分。 比如“id”是后面的url中的数字之后stackoverflow.com/questions/18187424/

 app.get("/xyz/questions/:id", function(req, res){ var useId = req.params.id; ... ... }); 

希望能帮助到你。

谢谢,Kartik