停止下载nodejs请求中的数据

2023-11-23

我们如何停止服务器的剩余响应 - 例如。

http.get(requestOptions, function(response){

//Log the file size;
console.log('File Size:', response.headers['content-length']);

// Some code to download the remaining part of the response?

}).on('error', onError);

我只想记录文件大小,而不是浪费带宽来下载剩余的文件。 Nodejs 会自动处理这个问题还是我必须为此编写一些特殊的代码?


如果您只想获取文件的大小,最好使用HTTP头,它仅返回来自服务器的响应标头,而不返回正文。

您可以在 Node.js 中发出 HEAD 请求,如下所示:

var http = require("http"),
    // make the request over HTTP HEAD
    // which will only return the headers
    requestOpts = {
    host: "www.google.com",
    port: 80,
    path: "/images/srpr/logo4w.png",
    method: "HEAD"
};

var request = http.request(requestOpts, function (response) {
    console.log("Response headers:", response.headers);
    console.log("File size:", response.headers["content-length"]);
});

request.on("error", function (err) {
    console.log(err);
});

// send the request
request.end();

EDIT:

我意识到我没有really回答你的问题,本质上是“如何在 Node.js 中尽早终止请求?”。您可以通过调用response.destroy()来终止处理过程中的任何请求:

var request = http.get("http://www.google.com/images/srpr/logo4w.png", function (response) {
    console.log("Response headers:", response.headers);

    // terminate request early by calling destroy()
    // this should only fire the data event only once before terminating
    response.destroy();

    response.on("data", function (chunk) {
        console.log("received data chunk:", chunk); 
    });
});

您可以通过注释掉 destroy() 调用并观察在完整请求中返回两个块来测试这一点。然而,就像其他地方提到的那样,简单地使用 HTTP HEAD 会更有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

停止下载nodejs请求中的数据 的相关文章

  • axios onUploadProgress 和 onDownloadProgress 不适用于 CORS

    我有一个用 Node js 编写的服务器 以及一个在浏览器中运行的 Web 客户端 客户端应向服务器上传和下载一些文件 服务器并不是最初交付客户端的服务器 所以这里就出现了跨域的情况 服务器使用cors https www npmjs co
  • npm WARN 已弃用 [email protected]:改用 uuid 模块

    当我尝试时 npm install g cordova latest总是得到npm 警告已弃用 电子邮件受保护 cdn cgi l email protection 使用 uuid 模块代替 mac 操作系统塞拉利昂 10 12npm v
  • Express JS:请求的资源上不存在“Access-Control-Allow-Origin”标头

    我有一个在服务器上运行的 API 和一个连接到它以检索数据的前端客户端 我对跨域问题做了一些研究并使其发挥作用 但我不确定发生了什么变化 我现在在控制台中收到此错误 XMLHttpRequest 无法加载https api mydomain
  • 本地主机和 request.Url.Authority

    我的应用程序通过 URL 中的公司标识符分隔用户 company1 app com company2 app com 我正在本地 PC 上进行测试 请求如下 company1 localhost com 但是 我的 request Url
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激
  • 异步减少返回承诺

    我有一个对象数组 我必须为来自异步函数的每个对象添加一个属性 我正在执行 Array reduce 来迭代每个元素并仅返回一个结果 具有新属性的一个对象数组 我有这个 const res await resultOne reduce asy
  • AWS Lambda 上的 NodeJS 集群

    是否可以在 lambda 函数中使用 cluster 模块 我试过这个 use strict var cluster require cluster var http require http var os require os var n
  • Node.js 中的 webRTC

    我想在node js 中使用webRTC 来管理涉及浏览器和nodejs 上的对等点的混合连接 我做了一些测试和搜索 我尝试使用wrtc https github com js platform node webrtc or webrtc
  • 如何在nodejs中使用crypto.randomBytes使用async/await?

    const crypto require crypto async function getKey byteSize let key await crypto randomBytes byteSize return key async fu
  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • 如何向 node-http-proxy 响应添加标头

    我需要在第三方服务上解决CORS 所以我想构建一个代理来添加标头 Access Control Allow Origin 为什么这段代码没有添加标题 httpProxy require http proxy var URL https th
  • Node.js 中的 Twilio 短信回复

    我正在使用 node js 中的 twilio 编写移动通知系统 目前可以向用户发送短信 但我希望用户能够回复我 我需要收集用户发送文本的电话号码以及消息的内容 以查询我的 mongoosedb 我找不到太多这方面的信息 因此非常感谢您的帮
  • 如何在浏览器同步中配置端口

    我有一个gulp任务运行于browser sync 默认情况下它运行在node js服务器的端口3000上 我想将默认端口更改为任何其他端口 例如3010 var gulp require gulp connect require gulp
  • Multer 使用数据创建新文件夹

    I use multer https github com expressjs multer 问题1 当我将以下代码片段放入app js app use multer dest uploads single file 它在根文件夹下创建一个
  • Angular 和 Node JS 中的路由问题 [Angular]

    我有角度js的问题 我创建了 login html 和 home html 成功登录后我想将页面更改为 home html 我的路由不起作用 默认 url 是 localhost angular 我尝试路由 realpath 即 local
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • 无法在 AWS Lambda 自定义授权方中验证 Twilio 请求

    我使用 NodeJS 构建了一个自定义授权者 lambda 函数 并将其配置为授权 AWS 中的另一个 lambda 函数 这个其他函数是从 HTTP 端点触发的 并且具有我在 Twilio Messaging Service 中配置为 w
  • GraphQL - POST 正文丢失。您忘记使用 body-parser 中间件了吗?

    我的电脑上不断出现以下错误graphql查询但不确定原因 POST body missing Did you forget use body parser middleware 我在这里做了什么奇怪的事吗 我已经尝试了在线 body par
  • 使用节点护照进行两次不同的登录

    我对两个站点 前台站点和后台 有相同的应用程序 两个站点都需要不同的登录条件 因为后台需要将 is admin 值设置为 true 这是我的登录方法 module exports verifyCredentials function use
  • 使用任何节点模块在内存中创建 ZIP 文件

    是否有任何节点模块可以在内存中创建 zip 我不想将 zip 文件保存在磁盘上 以便我们可以将这个创建的 zip 文件发送到其他服务器 从内存 做这个的最好方式是什么 这是我的例子 var file system require fs va

随机推荐

  • FontAwesome 图标在反应/下一个应用程序中无法正常工作

    已解决 TLDR 添加import fortawesome fontawesome svg core styles css 到 app js index js 文件修复了该问题 并且 FontAwesome 按预期工作 我的问题是由npx
  • delete[]等于删除吗? [复制]

    这个问题在这里已经有答案了 IP ADAPTER INFO ptr new IP ADAPTER INFO 100 如果我免费使用 delete ptr 会导致内存泄漏吗 如果不会的话为什么 这是VS2005生成的反汇编代码 delete
  • GitHub Actions 的工作流程中是否可以有动态策略矩阵?

    我想在工作流程中动态指定策略矩阵 所以 而不是 strategy matrix foo bar baz 我想首先调用一些脚本来计算并返回一个数组 例如 bar baz 对我来说 然后我想用它作为策略矩阵 这可能吗 使用可用的 GitHub
  • AppCompat v7 工具栏向上/后退箭头不起作用

    我的活动中有两个片段 当片段 A 显示时 我希望显示抽屉式导航汉堡图标并且抽屉式导航能够工作 当片段 B 显示时 我希望显示后退箭头 并在单击它时进行向上导航 但是 除非导航抽屉打开 否则我似乎无法让新的 AppCompat v7 工具栏在
  • 如何在pyCharm中进行单元测试

    我想做一些单元测试 所以我设置了一个列表 其中所有值都应断言为 true 就像这个问题 但我想让它跑进去PyCharm 按Alt Shift F10 如果我只使用答案中的代码 我就会得到No tests were found 您需要仔细检查
  • 如何检测 Java 字符串中的日文文本?

    我需要能够检测 Java 字符串中的日语字符 目前 我正在获取 UnicodeBlock 并检查它是否等于Character UnicodeBlock KATAKANA 或Character UnicodeBlock HALFWIDTH A
  • Android 对话框中的非法参数异常

    我正在使用此代码来显示警报对话框 当我单击 确定 按钮时 它应该显示日期选择器 protected Dialog onCreateDialog int id switch id case TIME DIALOG ID return new
  • 将 byte[] 转换为 float[] 时出现 UnsupportedOperationException

    我试图通过将 byte 放入 ByteBuffer 中 将 byte 转换为 float 将其转换为 FloatBuffer asFloatBuffer 然后将其转换为数组 private static float toFloatArray
  • 如何在 MS SQL Server 上模拟 Oracle 物化视图?

    连接到 MS SQL Server 的应用程序将创建视图 其中单行结果是包括 1 10k 记录聚合的分析 结果视图中的适用标准将有数十到数万个结果 然后 视图 条件将按视图中最有可能是聚合列的某些列 用户指定 进行排序 当使用聚合列进行排序
  • Dart/Flutter :日期范围内的天数列表

    我需要从日期范围中检索天数列表 用户选择开始日期和结束日期 并计算之间的天数 包括开始和结束日期 我尝试使用 for 循环 如下所示 List
  • Sub 与没有返回值的函数

    子程序的意义是什么 Sub 为什么不使用一个Function没有返回值 Edit 我的意思是 为什么关键字Sub存在 我可以用Function没有声明返回值并具有相同的 不是吗 因为它澄清了intent A Function明确地说 我回来
  • 如何在 GO 的 websocket 中保持连接处于活动状态

    I use code google com p go net websocket在服务器中 因此客户端可以从服务器获取通知 但是 客户端连接到服务器后 如果客户端和服务器之间没有任何数据传输 服务器将返回 EOF 错误websocket J
  • 如何将 Net::HTTP 响应转换为 Ruby 1.9.1 中的某种编码?

    我有一个 Sinatra 应用程序 http analyzethis espace technologies com 执行以下操作 检索 HTML 页面 通过 net http 从response body创建Nokogiri文档 提取一些
  • 数组被 array_keys() 和 array_values() 分割后元素顺序是否相同? [复制]

    这个问题在这里已经有答案了 我浏览了两者的手册页数组键 and 数组值 他们都没有提及是否遵守原始数组的元素顺序 他们所承诺的只是返回原始数组中的所有键或值 但是我们能绝对确定元素的顺序也与原始数组的顺序完全相同吗 不管是什么数组 我问这是
  • Flutter 中提供程序的单元测试

    我们已经以 TDD 方法启动了一个关于 Flutter 的新项目 我正在使用提供程序进行状态管理 在尝试编写小部件测试时 我们面临着测试提供程序的问题 您能否建议一个示例来编写提供者的单元测试和小部件注入提供者 我遇到以下问题 EXCEPT
  • PrimeFaces 文件下载不起作用

    我无法获取 primeFaces
  • Windows 10 上的 Ansi 颜色有点不起作用

    对于 Windows 来说 带有颜色的控制台相当新颖且令人兴奋 I wrote some programs that printed using the ansi colour escapes and all was good 然后突然停止
  • 使用 ansible 运行 mkvirtualenv

    我正在使用 ansible 配置一台机器 我成功地在虚拟机上安装了 virtualenv 和 virtualenvwrapper 但是 我似乎无法在虚拟机上创建 virtualenv 我正在尝试使用 name create virtuale
  • Java Servlet 对 POST 请求返回错误 405(方法不允许)

    我的servet对于get请求工作正常 但是当我调用POST 使用jquery ajax post 时 我收到错误405 不允许的方法 这是我的代码 import java io import javax servlet import ja
  • 停止下载nodejs请求中的数据

    我们如何停止服务器的剩余响应 例如 http get requestOptions function response Log the file size console log File Size response headers con