node.js - 我无法通过将 http-headers 通过管道传输到 node.js 中来将其保存到文件中

标签 node.js http-headers

var fsHeaders = fs.createWriteStream('headers.html', 'utf-8');
var getHeaders = request('http://google.com', {method: 'HEAD'}, function (error, response, body)
{
    if (error || response.statusCode !== 200)
    {
        return res.redirect('/');
    }

    if (!error && response.statusCode == 200)
    {
        var tester = response.body;
        console.log(tester + 'response.body is EMPTY... so the headers are stored not in the "body"... \n');
        var targetHeaders = response.headers;
        body = body + JSON.stringify(targetHeaders);
        console.log(body + 'OK! \n');
    }
}).pipe(fsHeaders);

但是我的 headers.html 是空的...如何正确地将response.headers保存到文件?我以后可以修改 header 并将其发送给用户吗?没有问题,还是受到某种限制?我想从服务器获取数据,通过 Node 修改它,然后发送给用户。

最佳答案

无论您使用的是 request 还是 http 模块,都没有关系。当您仅使用 {method: 'HEAD'} 请求 header 时,方法正文为空,但 header 驻留在响应流中。我猜你的问题是需要标题并将其显示为 [object object]。在这种情况下,您需要将对象更改为字符串 - 只需使用 console.log 显示它或将其通过管道传输到文件。

                        var targetHeaders = objectToString(resp.headers, targetHeaders);

                        function objectToString(object, outputString)
                        {
                            var outputString = '';
                            for (var i in object)
                            {
                                if (object.hasOwnProperty(i))
                                {
                                    outputString += i + ': ' + object[i] + ' \n';
                                }
                            }
                            return outputString;
                        }

now console.log(targetheaders); // OK! no [object Object] anymore :)

您稍后可以毫无问题地传递这些 header 。

关于node.js - 我无法通过将 http-headers 通过管道传输到 node.js 中来将其保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41385006/

相关文章:

http - 发送 404 或 410 是否符合犹太洁食标准,但仍显示内容?

python - 获取原始的、未解析的 HTTP 响应

node.js - node.js 上的 Google Storage API 自定义 header

node.js - 使用 node.js supertest 对 multipart/form-data 进行 POST

node.js - 尝试从 git 安装 npm 模块时出错

Python 请求 - 检查特定 header 是否存在

json - webpack $JSON.stringify.apply 不是一个函数

node.js - Nodejs 异步系列 - 将参数传递给下一个回调

http-headers - 403 Forbidden 与 401 Unauthorized HTTP 响应