gpt4 book ai didi

node.js - 从 node.js 的 http.IncomingMessage 获取请求正文

转载 作者:IT老高 更新时间:2023-10-28 23:23:31 25 4
gpt4 key购买 nike

我正在尝试为用 node.js 编写的应用程序实现一个简单的 HTTP 端点。我已经创建了 HTTP 服务器,但现在我一直在阅读请求内容正文:

http.createServer(function(r, s) {
console.log(r.method, r.url, r.headers);
console.log(r.read());
s.write("OK");
s.end();
}).listen(42646);

请求的方法、URL 和 header 打印正确,但 r.read() 始终为 NULL。我可以说这不是请求的问题,因为 content-length header 在服务器端大于零。

Documentation says r 是一个 http.IncomingMessage 对象,实现了 Readable Stream 接口(interface),那为什么不起作用呢?

最佳答案

“可读”事件错误,它错误地在正文字符串的末尾添加了一个额外的空字符

使用“数据”事件处理带有 block 的流:

http.createServer((r, s) => {
console.log(r.method, r.url, r.headers);
let body = '';
r.on('data', (chunk) => {
body += chunk;
});
r.on('end', () => {
console.log(body);
s.write('OK');
s.end();
});
}).listen(42646);

关于node.js - 从 node.js 的 http.IncomingMessage 获取请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006711/

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