You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nestjs中使用Axios发起HTTPS请求出现Agent报错如何解决

报错原因与修复方案

你遇到的Cannot read property 'Agent' of undefined报错和NestJS配置无关,是helper文件未正确导入Node.js内置https模块导致的。

第一步:修复导入问题

在helper文件顶部添加对应导入语句即可解决该报错:

  • 如果使用TS/ESModule规范:
import * as https from 'https';
  • 如果使用CommonJS规范:
const https = require('https');

证书验证问题处理

你当前使用rejectUnauthorized: false只是临时绕过验证逻辑,存在安全风险,生产环境推荐使用以下两种更稳妥的方案:

方案1:单请求配置自定义CA证书

将目标服务的根证书文件放到项目目录中,读取后传入httpsAgent配置即可:

import * as https from 'https';
import * as fs from 'fs';
import axios from 'axios';

export async function getTestData(): Promise<any> {
    // 替换为你的CA证书实际存储路径
    const caCert = fs.readFileSync('./assets/target-service-ca.crt');
    const result = await axios({
        url: tempURL,
        method: 'GET',
        timeout: 3000,
        httpsAgent: new https.Agent({
            ca: caCert
        }),
    });
    return result.data;
}

方案2:全局配置Node.js信任证书

启动NestJS服务时添加NODE_EXTRA_CA_CERTS环境变量,指定证书路径,所有Node.js发起的HTTPS请求都会自动信任该证书,不需要单独修改Axios请求配置:

# Linux/macOS 启动命令示例
NODE_EXTRA_CA_CERTS=./assets/target-service-ca.crt npm run start:prod

# Windows cmd 启动命令示例
set NODE_EXTRA_CA_CERTS=./assets/target-service-ca.crt && npm run start:prod

补充说明

Postman请求正常是因为Postman默认信任系统根证书,也支持用户手动导入信任自签名证书,和NestJS本身的配置没有关系。

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 04:00:04