【问题标题】:How to get POST body without using body parser如何在不使用正文解析器的情况下获取 POST 正文
【发布时间】:2019-01-11 18:41:37
【问题描述】:
module.exports=function(app){
//app is passed in from app.js
//app is a express application


var data=[
   {item:"cheese"},{item:"milk"},{item:"strawberrys"}
 ]
app.get('/todo',function(req, res){
   res.render('todo',{data:data});
});
app.post('/todo',function(req, res){
var data="";
req.on('data', function(chunk){
   data+=chunk;
 });
req.on('end', function(){
    console.log(data);
  })
 });
 }

关于上面代码的几个问题,“数据”是一个可以设置流的事件,并且块函数以块的形式返回流吗?此外,当我从“结束”事件中打印出数据时,它给了我 item=eggs,而我通过的对象是 {item:"eggs"}。为什么它没有给我对象?同样在“数据”事件中,它以字节缓冲区的形式返回它,但在“结束”事件中,它作为对象返回?

【问题讨论】:

  • 你能分享你用来将数据发布到服务器的代码吗?

标签: javascript express stream body-parser


【解决方案1】:

这取决于post 内容类型

如果您使用:content-type: application/json 发布,它将显示 JSON 数据。 示例:

POST /todo HTTP/1.1
Host: localhost:8080
Content-Type: application/json

{"key":"value"}

如果您使用:content-type: application/x-www-form-urlencoded 发布,它将显示key1=value1&key2=value2 等。 如果您不使用application/json,请求将是这样的。

例子:

POST /todo HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded

key=value

【讨论】:

    猜你喜欢
    • 2018-06-01
    • 2014-05-18
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2021-04-12
    相关资源
    最近更新 更多