当前位置: 首页 > 面试题库 >

nodejs-第一个参数必须是字符串或Buffer-在将response.write与http.request一起使用时

魏勇军
2023-03-14
问题内容

我只是试图创建一个输出给定URL的HTTP状态的节点服务器。

当我尝试用res.write刷新响应时,收到错误消息:throw new TypeError(’第一个参数必须是字符串或Buffer’);

但是,如果我用console.log替换它们,一切都很好(但是我需要将它们写入浏览器而不是控制台)。

该代码是

var server = http.createServer(function (req, res) {
    res.writeHead(200, {"Content-Type": "text/plain"});

    request({
        uri: 'http://www.google.com',
        method: 'GET',
        maxRedirects:3
    }, function(error, response, body) {
        if (!error) {
            res.write(response.statusCode);
        } else {
            //response.end(error);
            res.write(error);
        }
    });

    res.end();
});
server.listen(9999);

我相信我应该在某个地方添加一个回调,但是很困惑,我们将提供任何帮助。


问题答案:

请求采用回调方法,它是异步的!所以我假设,在执行回调时,res.end()可能会调用它。尝试在回调中关闭请求。



 类似资料:
  • 我知道很多人问过相关的问题,但请帮我解决。我试图复制一个我在网上找到的开源温度控制实验室。我想在树莓皮上运行它。这就是我一直遇到的错误: 生成它的代码如下所示: 我相信这段代码试图通过以下代码与另一个python文件通信: 我还不知道我周围的python代码,所以一个非常清晰的“虚拟类”解决方案的解释会很有帮助。谢谢伙计们。

  • 我想对一个浮点数进行四舍五入,得到点后的两位数。但我收到了一个错误: float()参数必须是字符串或数字,而不是“NoneType” 在评级模型的评级字段中四舍五入是一个坏主意,因为平均_评级不会四舍五入

  • 我得到以下错误: http.js:593抛出新的TypeError(“第一个参数必须是字符串或缓冲区”); 当我注释掉显示变量'tot'的行时,代码正在运行,我得到的输出是我传递的2个get参数的级联值。在这种情况下,恰好是1+20=120。我无法将数据转换成数字格式。 事先多谢。

  • 问题内容: 如果我删除in : github.com/creating_web_app_go/main.go:8:不能在http.HandleFunc的参数中使用func文字(类型func(http.ResponseWriter,http.Request))作为func(http.ResponseWriter,* http.Request)类型。 我对Go和指针都很陌生。 所以问题是,为什么必须是

  • 在我的网站上,我允许人们上传图片画廊。当他们点击图像时,底部有一个下一个和上一个按钮,这样他们就可以很容易地在图像中来回滚动。 我在位于/opt/cpanel/ea-php72/root/usr/var/log/php-fpm的日志中得到以下错误/ 这是关于我代码中的以下行: 下面是该行附带的其他代码: 基本上,这段代码使用get_字段(“gallery”)获取gallery中的照片总数,并将该数

  • 我试图创建一种方法,客户端可以上传图像从前端到后端服务器,然后将图像存储到Cloud dinary,但我最终得到了这个错误: TypeError[ERR_INVALID_ARG_TYPE]:路径参数必须是字符串类型或Buffer或URL的实例。收到未定义 这是我的后端代码库: 这是我从控制台得到的 我如何解决这个问题?