一尘不染

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

node.js

我只是试图创建一个输出给定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);

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


阅读 599

收藏
2020-07-07

共1个答案

一尘不染

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

2020-07-07