gpt4 book ai didi

node.js - nodejs 环境变量 "NODE_EXTRA_CA_CERTS"

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:26 26 4
gpt4 key购买 nike

我正在开发基于 Ionic + Angular + Cordova + Node js 的移动应用程序。

应用程序通过window.XMLHttpRequest访问https服务器:

module.exports = function request (method, url, body, headers) {
return new Promise(function (resolve, reject) {
var xhr = new window.XMLHttpRequest()

xhr.open(method, url)

xhr.onload = function () {
return resolve({
status: xhr.status,
body: xhr.responseText
})
}

xhr.onerror = xhr.onabort = function () {
return reject(new Error(xhr.statusText || 'XHR aborted: ' + url))
}

Object.keys(headers).forEach(function (header) {
xhr.setRequestHeader(header, headers[header])
})

xhr.send(body)
})
}

要执行此功能,需要将适当的根 CA 插入到 Node 环境中。因为我不控制发出 https 请求的代码,所以我更喜欢基于策略/配置的方法,该方法可以在 Node js 中启用额外的根 CA。

我四处搜索,发现 Node 实际上提供了一个环境变量'NODE_EXTRA_CA_CERTS ’这似乎符合我的目的。

但是我找不到任何关于如何使用这个变量的例子。

我的实现是安装 npm 包 dotenv-webpack .

添加了一个包含配置“NODE_EXTRA_CA_CERTS=./assets/cert/cacert.pem”(相应根 CA 的文件路径)的 .env 文件。

我可以验证变量 NODE_EXTRA_CA_CERTS 是否已成功设置。但它似乎没有任何效果。由于安全原因,对服务器的访问被拒绝。

所以我的问题是:任何人都可以提供有关如何使用变量“NODE_EXTRA_CA_CERTS”的示例吗?

谢谢

最佳答案

所以您所说的 env 变量是在“系统”级别提供的,因此您不需要在 env 文件中本地定义变量。

如果你想访问变量,你应该在 dotenv-webpack 上使用以下配置:

Dotenv({
systemvars: true
})

这将允许您访问系统级变量。要访问变量,您将使用变量:process.env.NODE_EXTRA_CA_CERTS

  • process 存储有关 Node 进程运行的信息。
  • env 存储所有环境变量(由 dotenv-webpack 填充)。

您可以在此处阅读有关 process 全局变量的更多信息:https://nodejs.org/api/process.html

关于node.js - nodejs 环境变量 "NODE_EXTRA_CA_CERTS",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com