gpt4 book ai didi

javascript - node.js ~ express req.on ('end' ) 触发但不触发 req.on ('data' )

转载 作者:行者123 更新时间:2023-11-30 11:40:29 27 4
gpt4 key购买 nike

要么使用正文解析器

  • application/x-www-form-urlencoded body parser

  • json body parser

产生相同的结果。

这就是我调用 API 的方式

$.ajax({ type:'post', url:'/api/order', headers: { 'GreatestHits': 'SteveMillerBand' }, data: { 'the': 'greatest' } } );

为什么 .on('data') 不触发body 不就是请求的data 对象吗?我看到表单数据记录到控制台。我也可以将帖子指向 http://httpbin.org/post 来证明这一点。我只能相信 Express 是真正的 c@ 拦截器。如果不是这样,那我就不知所措了。

// this is the code being called by the $.ajax()
app.use(function (req, res) {
console.log("app.use req.data", req.data);
req.on('data', function (chunk) {
console.log("req.use on data");
}).on('end', function () {
console.log("app.use on end");
});
res.sendStatus(200);
});

$.ajax()上贴出以下各模型,基于以上代码,结果如图:

app.use(回调() {})

  • has req.body
  • does not have req.data (undefined)
    • will NOT trigger .on('data');
    • will NOT trigger .on('end');

.

app.post(回调() {})

  • will not even be called unless a route string is included.

.app.post('路由', callback() {} )

  • has req.body
  • does not have req.data (undefined)
    • will NOT trigger .on('data');
    • will NOT trigger .on('end');

.

app.use('路由', callback() {} )

  • has req.body
  • does not have req.data (undefined)
    • will NOT trigger .on('data');
    • will trigger .on('end');

最佳答案

评论线程已经太长,无法继续添加。不知道我能做些什么更好,我发布这个作为继续对话的答案。

此代码触发 .on('end')

app.use(function (req, res, next) {
console.log("app.use req.data", req.body);
req.on('data', function (chunk) {
console.log("req.use on data");
}).on('end', function () {
console.log("app.use on end");
});
next();
});

这是对上面的调用;

$.ajax({ type:'post', url:'/api/order', headers: { 'GreatestHits': 'SteveMillerBand' }, data: { 'the': 'greatest' } });

为什么 .on('data') 不触发?我看到表单数据记录到控制台。

还有。如果数据段被称为 req.body 那么为什么不是 req.on('body')

因为,我发现,Body-Parser.js complete 使用了它从 Node.js 接收的 response 对象,并且它重新- 编写它从而重新创建 response 作为与 node.js response 对象预期不同的对象。

关于javascript - node.js ~ express req.on ('end' ) 触发但不触发 req.on ('data' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42878679/

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