Javascript 如何从Node.js中的http请求中提取req.headers中的数据?
我正在使用node.js,试图从http req对象中提取“内容长度”。当IJavascript 如何从Node.js中的http请求中提取req.headers中的数据?,javascript,node.js,Javascript,Node.js,我正在使用node.js,试图从http req对象中提取“内容长度”。当Iconsole.log(请求头)时我不断得到以下信息,这不允许我直接访问所需的数据: 我需要这些数据,以便检查上传文件的大小。看起来这应该是一个简单的解决方案,但我被卡住了。谢谢你的帮助,谢谢 HTTP请求不一定在一条消息中发送。它们可以拆分为多条消息,通常头单独发送,没有正文,正文在以后的消息中发送。因此,你无法在第一个事件中阅读身体。你必须订阅 //req.headers = { { host
console.log(请求头)时代码>我不断得到以下信息,这不允许我直接访问所需的数据:
我需要这些数据,以便检查上传文件的大小。看起来这应该是一个简单的解决方案,但我被卡住了。谢谢你的帮助,谢谢 HTTP请求不一定在一条消息中发送。它们可以拆分为多条消息,通常头单独发送,没有正文,正文在以后的消息中发送。因此,你无法在第一个事件中阅读身体。你必须订阅
//req.headers = {
{
host: 'localhost:5000',
connection: 'keep-alive',
'content-length': '702',
'cache-control': 'max-age=0',
'upgrade-insecure-requests': '1',
'...'}
通常,您会执行以下操作:
req.on('data', (data) => {
// ...
});
如果要查找标题“content-length”
,可以使用
req.setEncoding('utf8');
let message = '';
req.on('data', (d) => {
message += d;
});
const promise = new Promise(resolve => {
req.on('end', () => {
resolve(message);
}
}
console.log(await promise);
所以,req.data['content-length']
不起作用?为什么req.data中有标题?它们不在req.headers
中吗?req.headers[“content length”]
您正在查找请求正文吗?您知道HTTP请求不一定在一条消息中发送吗?它们可以拆分为多条消息,通常头单独发送,没有正文,正文在以后的消息中发送。因此,你无法在第一个事件中阅读身体。你必须订阅req.on('data',…)
“但是我被卡住了”没有多大帮助。你得到的是什么,什么时候?有错误信息吗?您能在MWE中提供一些代码吗?console.log(请求标题['content-length'])
OP需要content-length
标题值。@ibrahimmahrir OP已尝试console.log(请求数据)代码>。看起来OP试图获取请求主体。OP已经知道头数据在req.headers
中。
req.headers['content-length']