Sam*_*vic 9 http request node.js
我想知道在从客户端向服务器发送数据时是否有任何偏好在node.js中使用request.body或request.params?
您可以在身体中容纳比在网址中更多(不同)的数据.您可以在正文中传递任何字符串(特殊字符),而在URL中对它们进行编码会使您容易受到状态414(Request-URI太长)的攻击.并且在传递数组和复杂对象时使用主体要容易得多:)
我会说最好的做法是你应该在做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
Run Code Online (Sandbox Code Playgroud)
一个样本帖子
app.post "/api/items", (req, res) ->
itemController.saveItem req.body, (item, error) =>
if !error
res.send 'item': item
else
res.send 'error: error
Run Code Online (Sandbox Code Playgroud)
您也可以添加验证,但这就是我编写所有端点的方式.
小智 7
自从提出这个问题已经 4 年多了,但是,我仍然会插话确保其他人偶然发现这篇文章有更多的信息来更好地理解这个概念。
req.body 和 req.params 服务器有两个不同的目的。
当您需要将数据发送到服务器(以存储它或其他东西)时,您将使用 req.body,例如在对服务器的“POST”请求中。例如,检查以下内容:
您正在向 mongodb 发出“POST”请求以保存博客文章。在这种情况下,您可能希望获取请求正文中的数据并将其发送到数据库。在这里你会使用 req.body
app.post("/blog", function(req, res){
var data = req.body.blog;
.... // code to send data to the db
....
});
Run Code Online (Sandbox Code Playgroud)
当您想从 url 中提取“参数”时使用 req.params。假设您要提取作为 url 一部分的“id”。例如,“id”是以下网址中问题 stackoverflow.com/questions/18187424/ 之后的数字
app.get("/xyz/questions/:id", function(req, res){
var useId = req.params.id;
...
...
});
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
谢谢,卡蒂克
归档时间: |
|
查看次数: |
7665 次 |
最近记录: |