问题标签 [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.
javascript - 在回调之外访问数组
我正在尝试通过使用NodeJS进行一些基本的网络抓取来构建具有各种键值的对象数组。对于我的代码库的下一步,我需要访问父函数之外的“构建”数组,您将看到:
请注意,我使用express、request-promise 和 Cheerio作为我的主要 npm 依赖项。
正如您将在这段代码的最后一部分中看到的那样,我已经标记了数组的工作位置以及我需要在父函数之外访问它的位置。
我要求指针访问内置函数之外的“Built”数组,除此之外,有人可以在适当的时间提供一些信息来完成返回,回调()或返回回调(),我假设会解决我的问题在这里?
提前谢谢了!
node.js - 循环和嵌套 Promise
我正在使用Request-Promise和cheerio来抓取一些网站数据,基本上我正在尝试实现以下目标:
- 创建一个空数组
- 登录
- 从一页获取一些信息并将对象推送到数组中
- 从另一个页面获取一些信息并将对象推送到数组中
- 对于数组中的每个 now 对象,我需要:
- 转到存储在该对象中的 URL {link: "some url", items: []}
- 遍历该链接中找到的所有项目,并将其推送到迭代对象中的项目数组,如下所示:{link: "some url", items: [{item},{item}]}。
- 访问完成的orderArray,它应该会输出如下内容:
第 6 步是我遇到问题的地方,我不知道如何做到这一点,而不根据我的代码将 promise 嵌套在 for 循环中,然后开始变得讨厌。我可以在这里指出正确的方向吗?
这是我当前的代码:
rest - 代理后面的 request-promise html 请求
我试图从代理后面的 REST api 获得响应。
当使用浏览器(chrome,IE)手动测试时,我可以在浏览器中配置代理时从 GET 请求中获取结果。
但是,当我尝试在 nodejs 中使用 npm 包请求承诺(在量角器 + jasmine 测试中)做同样的事情时,我得到错误:错误:无法建立隧道套接字:statusCode407
这是我的测试代码(尝试了两种方法):
感谢您的时间和精力!
javascript - Node.js:使用“request-promise”模块,我如何在收到响应之前执行一个函数?
我想获取发送请求的时间和从服务器获得响应的时间,因为某些请求可能需要一些时间在服务器端处理。我有这个:
我的问题是:有什么办法可以得到提出请求的确切时间?使用上面的代码,我可以在发出请求之前获得正确的时间,这不是我所需要的,因为发出请求时可能会出现某种网络问题,如果发生这种情况,我的时间就会出错。
提前谢谢了。
node.js - 错误:套接字挂起多个获取请求
我正在 Node.js 上开发一个向 API 发送大量请求的脚本。在多次请求(超过 380 个请求)之后,我们收到以下错误消息:错误:套接字挂起(代码:ECONNRESET)。这对我们的脚本来说是一个大问题,因为我们想发送大约 10000 个请求。这不是 API 速率限制的问题,因为我们已经在处理这个问题。
我们的脚本在 OVH 服务器上运行,我们使用包 request-promise 发送我们的请求。我们的 Node.js 版本是 v 9.9.0。
这是引发错误的函数:
当请求工作时,我们会多次调用此函数以获得完整的响应(因为响应很大)。
当抛出错误“Err: { Error: socket hang up”时,我们再次调用该函数并再次返回此错误。我们不能放弃这些请求,所以我们想知道如何解决这个错误。也许可以增加套接字的最大数量(我看到它可以使用 http 代理,但我们使用的是 request-promise 包)?
如果您需要更多信息,请告诉我
node.js - 如何在 Express.js 服务器上执行 JWT API 请求?(edX API)
对于大多数人来说,这可能是一个超级简单的答案,但我是后端新手。我正在使用 Express.js 来实现我的服务器,并且我需要从 edX API 检索课程。以下是他们对文档的示例请求:
而且我似乎找不到如何将其转换为 Express.js 实现的起点。我能够使用“request-promise”对另一个 API 执行类似的请求),但这是第一个需要 JWT Auth...
提前致谢!
node.js - request-promise 假设 http, https
在nodejs中,当我请求假设http或https前缀时,request-promise npm包有什么方法吗?有什么选择吗?例如,当您在 jquery 中编写与“//myawesomewebsite.xom/givemedata”完全一样的 ajax 请求时,jquery 会自行假定前缀 http 或 https 并且 url 变为“ https://myawesomewebsite.xom/givemedata ”或' http://myawesomewebsite.xom/givemedata ' 根据所请求服务器的支持或其他。谢谢 !
javascript - 如何在返回 Promise 中的 if-else 之后运行另一个函数?
我有一个逻辑试图在返回承诺rp
的过程中在 if-else 之后运行(请求承诺) 。then
根据我的假设,我认为该过程应该经过第 1 步到第 10 步(某些部分可能会重复并增加价值)。完成后solveProblem
,最后,它转到doOther()
.
以下是我的代码的简化版本,尽管它有点乱:
然而,结果并不如我所料。它推迟了rp
,直接跳到另一个外面再到doOther()
。之后,它继续rp
。像这样:
我确定这是异步问题,但我不确定如何修改它以符合我的要求(然后是第 1~10 步doOther()
)。谁能帮我弄清楚?谢谢。
javascript - TypeError:str.trim 不是函数(Request-Promise/Tough-Cookie)
我遇到了与此处讨论的类似问题: https ://github.com/request/request-promise/issues/183
我正在使用 Request-Promise@4.2.2 和 Tough-Cookie@2.3.4
并得到同样的错误:
类型错误:str.trim 不是函数
我也玩过 npm-dedupe
任何线索,
我的代码如下所示:
javascript - 获取请求响应中的请求承诺被重复?
我的服务器中有以下路由:
带有 get 请求的 request-promise 调用外部 API。然后将来自外部 API 的请求解析为简化的有效负载。包装了 request-promise 的 get 请求然后返回这个减少的有效负载。第一次调用我的 get 请求时,它会正确返回有效负载,但是一旦您再次请求它,它会多次返回相同的有效负载。
我已经尝试在 get 请求中放置一个简单的响应,例如“res.send('hello world')”,并且 hello world 会返回正常的次数。但是由于某种原因,我的 request-promise 的有效负载在被调用时重复了获取请求。我似乎无法弄清楚为什么会这样。