You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用http模块时报request.getHeader is not a function如何解决?

问题分析

你遇到的报错核心原因是API调用混淆:

  • Node.js http.createServer 回调中的request是http.IncomingMessage类的实例,该实例本身没有getHeader()方法
  • getHeader()是响应对象response(http.ServerResponse类实例)、或是客户端发起请求时的http.ClientRequest类实例的方法,不适用于服务端接收的请求对象
修复方案

获取请求头直接访问request的headers属性即可,Node.js会自动把所有请求头的字段名转换为小写,所以取值时要用小写的字段名:
把你代码里的对应行:

var header = request.getHeader('Content-Type');

替换为:

var header = request.headers['content-type'];
额外说明

GET请求通常不会携带Content-Type请求头,只有POST、PUT等携带请求体的请求才会包含该字段,如果你用GET请求测试时打印结果为undefined属于正常现象。

修改后的完整参考代码:

var http = require("http");
var fs =  require("fs");

var server = http.createServer(function(request, response) {

    var temp = fs.readFileSync("/sys/class/thermal/thermal_zone0/temp");
    var temp_c = temp/1000;

    var header = request.headers['content-type'];
    console.log(header);

    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Raspberry Pi cpu temperature: ");
    response.write("\n" + temp);
    response.write("\n" + temp_c);
    response.end();
});
server.listen(8080);

内容的提问来源于stack exchange,提问作者gre4ka play

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:39:00