gpt4 book ai didi

javascript - 如何格式化路径以便在 Express.JS 中接收通用 JSON 对象?

转载 作者:可可西里 更新时间:2023-11-01 17:06:33 31 4
gpt4 key购买 nike

下面是Js、Node.js、Express.js的通用用法

app.get('/person', function(req, res, next){
console.log(req.body);
}

我正在发送当前的 curl 命令

curl -v -H "Content-Type: application/json" -X GET -d '{"name":"me", "phone":"123"}' localhost:1337/persons

我假设我的 console.log() 会打印 {} 一个空容器。现在通过阅读 Express.js 文档,我知道我可以安排 URL 来接受参数:/persons/:person/id/:id 并使我的 JSON 输入有效,但我想知道的是我是否可以接受任何用户传递的对象 JSON?换句话说,如果我的 json 有一个额外的字段怎么办?这需要一个全新的 express 处理程序吗?如果这是不可能的,这是由于安全问题还是这真的是糟糕的设计?谢谢

最佳答案

正如 man curl 所说,-d--data 将数据添加到请求的正文中。

-d, --data

(HTTP) Sends the specified data in a POST request to the HTTP server, in the same way that a browser does when a user has filled in an HTML form and presses the submit button. This will cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare to -F, --form.

-d, --data is the same as --data-ascii. --data-raw is almost the same but does not have a special interpretation of the @ character. To post data purely binary, you should instead use the --data-binary option. To URL-encode the value of a form field you may use --data-urlencode.

因此,您需要像 body-parser 这样的包来解析它。

npm install body-parser 一样安装它,并将这些行添加到您的代码中,您的问题就会得到解决。

var bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

注意:

我建议在您的 curl 中使用 -X POST 而不是 GET 并在您的如果您想发送正文有效负载,请编写代码。

另请注意拼写错误:curl 是 /persons 但代码中有 app.get('/person', 更正其中任何一个。

关于javascript - 如何格式化路径以便在 Express.JS 中接收通用 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38928971/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com