问题标签 [node-fetch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2004 浏览

node.js - 在未指定 maxSockets 的情况下调用 HTTP 端点时在 Azure 应用服务上连接 ETIMEDOUT

从 Azure 应用服务中的 node.js 多次调用 HTTP[S] 端点时,我遇到了一些超时问题。

这是我的代码来演示这个问题。

在标准中型应用程序服务中运行此应用程序 3 或 4 次时(我使用 Kudu 运行它,但我在标准 Web 应用程序中发现此错误)对于每个请求,我都会收到以下错误:

几分钟(5/6)后没有执行请求,上面的代码再次工作。

我已经尝试过node-fetchhttps://www.npmjs.com/package/node-fetch)和requesthttps://www.npmjs.com/package/request)。结果相同。agent如果我没有指定一个并且与目标端点无关,则会出现同样的问题,我尝试了许多不同的端点(私有或公共)。

根据Microsoft 最佳实践agent,node.js 应用程序应使用具有以下配置的保持活动:

事实上,在创建代理时:

一切都按预期工作。

这种行为是预期的吗?node.js 的最佳实践是什么?总是在 Azure 之外指定一个agentwith可以吗?maxSockets

更新:

另一个奇怪的行为是,如果我使用 3 或 4 次运行上述代码node index,我希望在节点进程退出时连接会关闭,但似乎连接会保持打开几分钟。这可以是TIME_WAIT状态的影响吗?

0 投票
1 回答
40077 浏览

javascript - POST 请求的节点获取问题

在邮递员中,我可以成功地提出这个请求:

在此处输入图像描述

并得到这个回应:

在此处输入图像描述

现在我想在 node.js 中的 server.js 文件中执行相同的请求:

这行不通。以下是我访问 localhost:5000/api/sentimenttest 时浏览器中显示的内容:

这是控制台输出:

由于请求在邮递员中工作得很好,我认为问题在于节点获取,或者我使用它的方式,特别是在调用中如何body提供参数。fetch()似乎 API 调用不包含我想要的内容,因为在浏览器中它说"size":0.

我应该怎么做才能解决这个问题?

0 投票
1 回答
53 浏览

javascript - 从 for 循环多次调用数组,然后删除 0 长度结果

这就是我想要实现的目标,我正在调用一个 api,导致基于邮政编码和半径的多个调用。根据人口密度,结果可能少至一个或多至二十个。此调用的结果作为没有信息的数组返回到多个条目。我需要做的是获取多个单独的数组并创建一个数组,该数组删除所有空数组并将每个单独的数组附加到一个数组中。当前进行多次调用的代码是:

console.logs 到 buildOutput 的结果如下所示:

所以这个半径为 4 英里的邮政编码的结果是 7 个邮政编码,其中 2 个当前有条目。对此的帮助将不胜感激,将七个单独的调用放入一个数组中,然后删除任何零条目。

0 投票
1 回答
100 浏览

javascript - 使用 fetch 保留图像元数据

我正在使用fetch从远程服务器下载图像,然后上传到 AWS S3 商店。下载、设置内容类型和上传工作正常,但在此过程中我丢失了图像中的图像元数据(例如版权、拍摄日期、相机等)。我进行了广泛的研究,但看不到如何使用 fetch 来获取它,或者看它是否在此处丢失或在 aws PutObject 调用中丢失。如果需要,我愿意使用 fetch 以外的东西来解决问题。

非常感谢任何帮助!

0 投票
2 回答
469 浏览

node.js - 使用 node-fetch 跳过等待时间

我使用node-fetchCheerio漫画网站中获取数据。我只是使用一个简单的代码来显示正文 html,如下所示:

问题是这个页面使用了一个javascript代码,客户端需要等待5秒才能重定向到主页,所以在主页加载之前我无法抓取任何东西。

我怎样才能跳过这段时间并开始从页面中抓取数据。

谢谢你。

0 投票
1 回答
94 浏览

javascript - 只有在所有请求完成后,我才能调用函数?

我目前正在使用 npm 包生成一些请求,request如下所示:

我只是不知道如何在toBeCalledWhenAllRequestsHaveFinished()所有请求完成后才打电话。

应该做什么 ?

0 投票
0 回答
415 浏览

javascript - 在 Node 中发布 Web 登录表单

request用来发布一个login.php带有参数的请求uidand pwd,然后node-fetch用来读取 auth 后面的页面。

console.log(body)从该网站返回的是:

如果您的浏览器没有启用 javascript,请单击此处

当我从浏览器正常登录时会显示该消息。但是当我对用户配置文件进行后续提取时,它说我没有被授权。

这与requestcontra有什么关系node-fetch吗?

0 投票
1 回答
2278 浏览

mocking - How do I stub a module with Jest and Proxyquire?

I want to force node-fetch to be a stub and I'm having a bit of trouble getting it to work. Code:

setup.js:

package.json:

Result:

How can it be failing to load the module that I just loaded 2 lines previous? Is proxyquire not the right module to use here?

I've gotten node-fetch to be a mock in my test but when I run the function in the module (which has const fetch = require('node-fetch'); at the top) it's going to the real module instead of the fake. I've tried using fetch mocking libs like fetch-mock to no avail.

0 投票
1 回答
11264 浏览

node.js - 将NodeJS流消耗到缓冲区并写入流的正确方法

我需要将可读流通过管道传输到缓冲区(要转换为字符串)和文件中。流来自node-fetch.

NodeJS 流有两种状态:暂停和流动。据我了解,一旦'data'附加了侦听器,流就会变为流动模式。我想确保我读取流的方式不会丢失任何字节。

方法1:管道和读取'data'

方法2:使用直通流:

是否需要第二种方法以免丢失数据?第二种方法是否浪费,因为可以缓冲另外两个流?或者,是否有另一种方法可以同时填充缓冲区和写入流?

0 投票
4 回答
1938 浏览

javascript - Node.js 中基于 Promise 的业务级函数如何处理 Error 上返回的对象?

我需要创建一个名为“getLocationById”的业务级函数,它通过 REST API 从远程服务器检索一些数据。然后由路由器调用此函数以在网页上显示数据。

如果 fetch 调用成功,则 json 结果作为 Promise 返回。但是,如果 fetch 发现错误,例如远程服务器没有响应或响应 500 错误,应该向路由器返回什么?

此外,路由如何响应错误?

编辑:

在路由器中:

引发了以下错误:

.then(r => res.send(r.json()))

进一步编辑:

然后我做了以下更改。

业务层

路由器端:

然后抛出了一个新错误:

我相信 fetch 函数返回了一个 Promise 对象,调用函数可以从路由中接收该对象?