如何格式化路径以便在Express.JS中接受通用JSON对象?
How does one format a path in order to take in a generic JSON object in Express.JS?
下面是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有一个额外的字段;这需要一个全新的快递处理员吗?如果这是不可能的,这是由于安全问题还是这真的只是糟糕的设计?由于
正如man curl
所说,-d
或--data
将数据添加到请求体中。
-d,——data
(HTTP)向HTTP服务器发送POST请求中指定的数据,就像浏览器在用户填写HTML时所做的一样表单并按下提交按钮。这将导致旋度通过使用content-type将数据传输到服务器应用程序/x-www-form-urlencoded。
-d,——data与——data-ascii相同。——data-raw几乎相同,但没有对@字符的特殊解释。发布如果数据是纯二进制的,则应该使用——Data -binary选项。要对表单字段的值进行url编码,可以使用——data-urlencode。
所以,您需要一个像body-parser
这样的包来解析它。
像npm install body-parser
一样安装它,并将这些行添加到你的代码中,你的问题就解决了。
var bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
注意:
我建议使用-X POST
代替GET
在你的curl和app.post()
在你的代码,如果你想发送一个主体有效载荷。
还请注意打字错误:curl是/persons
,但代码有app.get('/person',
更正其中任何一个
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 如何为json对象中的段发送array[]
- 将JSON对象传递给angular指令
- 更改JSON对象的结构
- 访问JSON对象内部的数组元素
- 在ejs-partial中对JSON对象进行迭代
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 访问嵌套JSON对象的键,其中键是动态的
- json对象中缺少对象循环
- 发送json对象或使用express路由呈现视图
- 在play2框架中向json对象添加下拉列表项
- 元素名称上带有短划线 (-) 字符的 Json 对象
- autocomplete不接受源的json对象
- 如何在javascript中创建动态json对象
- 在使用客户端脚本时拾取JSON对象
- 如何通过json对象数组为嵌套对象赋值
- 构造JSON对象