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

Insomnia v9.2.0预请求脚本调用外部库失败求助

在Insomnia v9.2.0预请求脚本中调用外部库的正确方法

一、Node.js核心模块(如fs)的使用限制

Insomnia的预请求/测试脚本运行在浏览器级JavaScript环境,并非完整的Node.js运行时,因此fs这类Node核心模块无法通过require直接调用。如果需要读取本地文件内容,只能通过Insomnia的环境变量导入功能实现:

  • 打开Insomnia的环境设置面板
  • 点击变量值输入框旁的文件图标,选择目标本地文件,Insomnia会自动将文件内容存入该环境变量
  • 在预请求脚本中通过pm.environment.get('变量名')获取文件内容

二、第三方库(如node-forge)的正确引入方式

你遇到的insomnia.sendRequest请求CDN超时问题,大概率是Insomnia内置网络策略限制导致,推荐以下两种可靠方案:

方案1:本地注入库代码(推荐,无网络依赖)

  1. 打开浏览器访问node-forge的CDN地址(例如指定版本的forge.min.js),复制完整的JS代码
  2. 在Insomnia的全局预请求脚本(或当前请求的预请求脚本)中,将复制的代码用反引号包裹,通过eval执行:
// 注入node-forge库代码
const forgeCode = `[粘贴复制的forge.min.js完整代码]`;
eval(forgeCode);

// 直接使用forge对象示例
const md5Hash = forge.md.md5.create();
md5Hash.update('test content');
console.log(md5Hash.digest().toHex());

这种方法完全离线,不会出现网络超时问题,适合长期稳定使用。

方案2:调整Insomnia网络配置解决CDN请求超时

如果坚持通过CDN加载,可尝试修改Insomnia的网络设置绕过限制:

  • 打开Insomnia设置(Settings)→ 网络(Network)
  • 关闭Enable DNS over HTTPS选项
  • 重启Insomnia后,重新执行CDN加载脚本:
async function loadForge() {
  if (typeof forge === 'undefined') {
    // 指定具体版本的CDN链接,避免版本兼容问题
    const response = await insomnia.sendRequest('https://cdn.jsdelivr.net/npm/node-forge@1.3.1/dist/forge.min.js');
    eval(response.data);
  }
}
await loadForge();

// 使用forge示例
const rsaKeyPair = forge.pki.rsa.generateKeyPair({bits: 2048});

三、通用注意事项

  • Insomnia脚本环境不支持require、import等Node.js/ES模块语法,所有外部库必须通过eval注入到环境中
  • 在全局预请求脚本中加载的库,会在所有请求的预请求/测试脚本中生效,无需重复加载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:17:07