问题标签 [node-https]

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 投票
1 回答
623 浏览

javascript - module.export 和全局对象

我很困惑。

有时,当我的 web api 接收到数据时,它会将对象之间的数据混合在一起,在我看来,文件中的全局对象实际上是持久的..

这是代码的基本布局

handlers.js

其他文件.js

我预计,由于它需要一个导出的模块,因此每次调用导出的模块时,它都会被视为自己的对象,但是,似乎该对象没有被视为唯一的,而是被部分覆盖,并且'随机'。这向我表明我可以导出一个变异对象,例如跨文件的数组

我是否正确,因为全局在多个请求中持续存在?在导出对象中设置全局是否会以任何方式影响该对象的行为?在这种情况下,我不希望这些数据发生变异。

提前感谢您的建设性批评和指导:)

0 投票
1 回答
2964 浏览

javascript - 如何在nodejs http模块上限制从rest服务器传入的块大小?

我正在使用 nodejs 请求模块从 nodejs 请求一个休息服务器。如果传入的数据大小超出允许的限制,我想取消流。这里的目的是确保我的网络没有被锁定。

我的代码示例如下;

到目前为止一切都很好。但是有一个问题。我正在控制传入的数据。我允许的数据大小不得大于 256 字节。但是第一次获取的块大于允许的大小。所以我的大小控制是无稽之谈。有没有处理它的方法。是否可以限制块的大小。提前致谢。

0 投票
2 回答
169 浏览

javascript - For of loop 进行 HTTPS 地理编码 api 调用并在结果上将坐标输入 SQL 数据库,如何让 Node 的 HTTPS 模块工作?

我有来自 MongoDB 的 13.000 个文档,其中有地址行 + 邮政编码,我试图为每个文档向 Google 的地理编码 API 发出请求,并为它们获取 LAT + LONG,以便我可以让它们动态出现在地图搜索中。

我设计了以下 for of 循环,一次测试 10 个项目,但由于写入 DB 调用和调用 API 的异步性质,来自 HTTPS 请求的 LAT/LONG 坐标最终未定义/unavailable to knex's INSERT 并且循环似乎一直在继续......

是否可以以阻塞方式编写它?因此,除非两个承诺都已解决,否则 for 循环不会转到下一项?

编码:

我确保代码库没有空值,并测试了 api 调用和数据库调用,以确保它们独立工作。

0 投票
0 回答
81 浏览

amazon-web-services - 如何创建有效的 AWS 令牌以使用 Cognito 身份向 ElasticSearch 发出请求?

我想向 AWS ElasticSearch 实例发出请求。该实例具有对角色的访问控制,allow access to one or more AWS accounts or IAM users.该角色代表一个 Cognito 身份池,该身份池具有一个 Cognito 用户池作为身份验证源。

当我尝试签署请求时,我得到

data "{\"message\":\"The security token included in the request is invalid.\"}"

这是请求

0 投票
1 回答
37 浏览

javascript - 总结nodejs上http回报的最佳方式

必须接受多个 SOAP 请求,并且需要一起收回所有返回。

我现在要做的是:

好的

我知道我无法检索此循环之外的数据,因为回调。

奇怪的是(或不是),如果我在console.log(my_external_array)之后添加一个my_external_array.concat (myData);,脚本会在每次处理后显示添加项目......但是,如果我把它放在console.log回调之外(任何地方),我没有任何回报......: (

这将是处理所有这些请求、将结果加入数组并将其传递给另一个函数的最佳方式。我需要此请求中的所有值来汇总它们并将汇总结果保存到数据库中

抱歉没有更详细地说明我在做什么......

0 投票
1 回答
589 浏览

node.js - `req.socket.authorized` 的结果使用 nodejs https 和 express [相互认证] 不正确

我正在尝试设置具有相互身份验证的 https 服务器。
我为服务器创建了密钥和证书(自动签名)。

现在我使用 firefox 连接到服务器而不提供任何客户端证书
这应该导致req.socket.authorized存在false(如此所述),但由于某种原因,在一些刷新(并且没有改变任何东西)之后,消息从权利
Unauthorized: Client certificate required (UNABLE_TO_GET_ISSUER_CERT)
变为
Client certificate was authenticated but certificate information could not be retrieved.

对我来说这是出乎意料的,因为这意味着req.socket.authorized == true即使没有客户端证书。有人可以解释一下为什么会这样吗?


这是我的代码:

0 投票
2 回答
62 浏览

node.js - 节点 - 调用 ExpressJS 路由,并需要向其中的 API 发出 GET 请求

我正在为一个项目制作一个加密货币仪表板,我对 Node 和 Express 完全陌生。这是我目前拥有的

这个想法在我的前端,我有一个按钮,当点击它时,将向 CoinAPI api 发出请求,获取所有报告的资产和当前值。我不太确定我应该如何将该响应数据作为响应发送回我的前端。https.request因此,我尝试从线路返回的 JSON 中提取响应数据。data = []正如您在代码顶部看到的那样,我有一个数据数组。

我最初的请求设置如下:

但是当我尝试推送时,我ddata控制台登录并且数据数组为空。这是有道理的,data数组超出了请求函数的范围,因此数据不会更新。但是当我试图传入data函数时,我出错了。

基本上,我希望能够在向 CoinAPI 发出请求后将 JSON 数据发送回我的前端。如果我process.stdout.write(d)https.request回调中这样做,我确实会看到 coinapi 数据回来了。我只是不知道如何将它作为我的响应的一部分发送到前端。

0 投票
1 回答
95 浏览

node.js - 为什么超时不做我期望它为 https 节点模块做的事情?

我有这样的代码:

https://nodejs.org/api/http.html#http_http_request_options_callback上的文档说timeout

一个数字,以毫秒为单位指定套接字超时。这将在套接字连接之前设置超时。

我的通话显然需要超过 1 毫秒,但我没有收到任何错误。我在这里想念什么?

更新

当我req.on('timeout'使用http模块而不是https. 不知道为什么会有所不同?我真的可以改变require('https')require('http')看到一切都按预期工作。文档说选项应该相同,但默认值不同。

0 投票
0 回答
256 浏览

node.js - 电子连续网络请求太慢

我有一个电子应用程序,带有一个模块,我需要在其中向一个安静的端点发送多个(5000)个连续请求。从浏览器窗口测试对该端点的连续请求会产生 80 毫秒的响应时间,但现在我需要在 Electron 端(Node.js)中实现它,并且当我使用下面的代码运行 100 个请求的测试时,响应时间不少于 500 毫秒,并且随着我发送的更多而增加。
我也用 Axios 对此进行了测试,响应时间相同(> 500ms)。

}

0 投票
0 回答
41 浏览

node.js - 无法使用 http 模块在 Node.js 中传输文件

我正在尝试在典型的客户端/服务器交互中发送和接收文件:

  1. 客户端通过 zip 文件发送。
  2. 服务器接收并保存它。

客户

服务器

问题

问题是一切正常,服务器正确接收数据并将流保存到指定文件中。所以最后我在文件系统中得到了一个 zip 文件。当我尝试打开它时:

Windows 无法打开该文件夹。压缩 (zip) 文件夹“...”无效。

似乎是一个序列化问题。但是我指定了编码,所以我认为我已经涵盖了它。