问题标签 [request-promise]

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 投票
3 回答
17895 浏览

node.js - 请求-承诺下载pdf文件

我收到了多个 pdf 文件,必须从 REST-API 下载。

在 auth 和 connect 之后,我尝试使用 request-promise 下载文件:

该请求创建了一个 pdf(大约 1-2MB),但我无法打开它。(Mac 预览显示空白页和 adobe 显示 =>

打开此文档时出错。阅读本文档时出现问题 (14)。

我没有关于下载文件的 API 端点的信息。只要有这个卷曲:

我的错误在哪里?

更新:

我在编辑中打开了文件,文件看起来像这样: 文件预览

没有任何经验:-)

0 投票
1 回答
3572 浏览

javascript - POST 到 request-promise-native 没有 formdata

这可能是我忽略的一些愚蠢的事情,但我正在尝试使用request-promise-nativePOST 到表单,并且我得到的响应看起来像我发送的表单数据是空白的。

示例:这适用于标准request

正确产生:

但是这段代码

产生这个结果,就好像它没有得到 formData:

我是否忘记了括号或标点符号之类的?在我看来,这与request-promise 文档中的示例相同。

0 投票
1 回答
105 浏览

node.js - 使用请求承诺模块从单个请求进行批量查询

这是我用于拆分克隆的 sql 表:

'movie' 组的费用由用户 - user1、user2 共享,'lunch' 组的费用由用户 - user1、user2、user3、user4 共享。

我正在使用 request promise 对端点 /user_expense?uname=user1 进行编码,如下所示:

对于 user1,费用金额应为 1250/- (1000 + 250) 为这个单个请求设置批量查询是否有效,如何做?

0 投票
3 回答
936 浏览

javascript - nodejs递归调用相同的api并顺序写入excel文件

在从 API 获取结果后,我需要使用请求承诺递归调用 API 需要写入 excel 文件,API 示例响应如下

现在我想调用这个API n 次,这里n 等于totalPages,在调用每个API 之后我想将响应结果写入excel 文件。首先将第 1 页响应结果写入 excel,然后将第 2 页响应结果附加到 excel 文件,依此类推。我编写了一些示例代码,如下所示

但是面临递归调用 API 并按顺序维护的问题,例如首先将第 1 页结果写入 excel 文件,然后将第 2 页结果追加到 excel 等等。任何代码示例如何在 nodejs 中实现

0 投票
1 回答
42 浏览

javascript - 在 Promise 中直接返回一个对象

为什么这段代码

抛出错误

我的猜测是 JS 认为{是函数左大括号,而不是对象左大括号。那么,我们是不是不允许在 promise 中直接返回一个对象呢?

0 投票
1 回答
3633 浏览

node.js - for循环中的速率限制请求承诺

我试图限制使用 Promise 向外部 API 发出 GET 请求的速率,但我很难让它工作。在我的场景中,我正在使用“request-promise”模块,我需要从 API 发送 175 个项目的 GET 请求(每个项目 ID 一个请求)。API 的速率限制为每 10 秒 40 个请求,因此我的限制需要为每个请求 250 毫秒。我正在尝试在循环内为每个项目 ID 发送请求,例如:

这是我的 API 客户端的一个片段,它返回一个 250 毫秒超时且没有回调的请求承诺 (rp):

异步不起作用,它返回“超出 429 请求限制”的堆栈跟踪

0 投票
1 回答
482 浏览

javascript - 将乱码字符转换为 ISO-8859-1

我正在尝试从一个根据元标记以 ISO-8859-1 编码的葡萄牙语网站获取一些文本。我正在使用 NodeJS 和 request-promise 包。例如,我得到的是

阿尔格斯

我相信我需要在 NodeJS/Javascript 中将其转换为 ISO-8859-1。我尝试过 decodeURIComponent、encodeURIComponent、unescape 和 escape。这些都没有奏效。其中一些甚至使字符串变得更糟。有人知道如何解决这个问题吗?

提前致谢。

0 投票
1 回答
1133 浏览

node.js - request-promise 中的请求何时发送?

这个问题是关于request的,也可能映射到request-promise

在以下示例中:

什么时候发送请求?

  • Line 1它是在被调用时发送的rp(...)并且返回的承诺是等待响应吗?
  • 还是在Line 2执行返回的承诺时发送?

根据下面的例子,答案是:rp(...)不发送请求。它实际上将调用添加到稍后将执行以发送请求的事件循环。

-

从我的试验看来,如果进程没有返回事件循环,则不会发送请求。

有没有办法让请求立即发生并稍后等待?

是否有另一个库可以保证在返回“承诺提供响应”之前发送请求?

编辑:

根据@terry-lenoxx 的评论request-promise 实际上将请求排队并且不会立即发送请求。一旦控件返回事件循环,排队的请求将被发送。

这对我的情况很有用,即我想一起发送多个请求并稍后加入每个响应。这可以很容易地完成,如下所示:

我测试了这种行为,它很清楚。

0 投票
1 回答
2479 浏览

node.js - 如何在使用 sinon 的 mocha 单元测试中正确地存根 request-promise?

我的单元测试是:

问题是我的handleMessage功能,它看起来像:

我的updateStatus功能:

我的实际request通话被埋得如此之深,我如何在测试时将其存根?

0 投票
1 回答
202 浏览

node.js - 是否可以将 request-promise 与 httpSignature 一起使用

根据文档,这似乎是可行的。

请求承诺文档

由于 request-promise 包装了 request,所有适用于 request 的东西也适用于 request-promise。另请查看请求文档以获取更多示例。

请求文档说

httpSignature - 使用 Joyent 库的 HTTP 签名方案的选项。必须指定 keyId 和 key 属性。有关其他选项,请参阅文档。

我已经尝试httpSignature: {key, keyId}在我的请求选项中添加一个参数,并且它可以工作,除了它将私钥与请求一起发送,这是不对的。