全部 ApiPost使用 后端 前端 接口测试 IOS Android 数据库 2022 测试技术 工具
问答 / 问答详情

A JavaScript error occurred in the main process

ApiPost使用 前端 279次浏览

问题描述:

自己写了一个外置js脚本,执行的时候apipost报错,

rsa中需要用到的node-rsa库已安装,执行node rsa.js命令是有结果输出的,

但是当使用apipost调用的时候就会报错。

apipost版本:8.1.9

错误截图:

A JavaScript error occurred in the main process

apipost预执行操作脚本:

try {
    // 调用外部脚本并获取输出
    apt.execute("D:/ApiPost/dolphin/rsa.js")
    .then((response) => {
        // 设置请求查询参数中的 "key" 字段
        apt.setRequestQuery("key", response);
    });
} catch (e) {
    // 捕获并输出错误信息
    console.error("Error executing external script:", e.message);
}

rsa.js脚本:

const base64 = 'base64'
const utf_8 = 'utf-8'
const NodeRSA = require('node-rsa');

function encryptByPublicKey(publicKey, text) {

    // 创建一个新的 NodeRSA 对象并导入公钥
    const key = new NodeRSA({b: 2048});
    key.importKey(publicKey, 'public');
    key.setOptions({encryptionScheme: 'pkcs1'});
    // 分块加密,因为 RSA 加密有输入长度限制
    return key.encrypt(text, base64, utf_8);
}

function encodeBase64(str) {
    // 创建一个Buffer对象,指定编码为utf-8
    const buffer = Buffer.from(str, utf_8);
    // 使用buffer的toString方法进行Base64编码
    return buffer.toString(base64);
}

function decoderBase64(str) {
    // 创建一个Buffer对象,指定编码为base64
    const buffer = Buffer.from(str, base64);
    // 使用buffer的toString方法进行Base64编码
    return buffer.toString();
}

function getCode() {
    const key = new NodeRSA({b: 2048});
    const publicKey = key.exportKey('public');

    let encodeData = "123456"
    let encrypt = encryptByPublicKey(publicKey, encodeData)
    return encodeBase64(encrypt)
}

const code = getCode()
console.log(code)
| 0 收藏

3 个回答

这个错误看提示是接受请求响应数据过大。可能是当前电脑内存不足导致的吧
安装c盘默认路径下试试

apipost安装位置:C:\Program Files\Apipost,

电脑内存是足够的:

A JavaScript error occurred in the main process

apifox都可以正常执行

A JavaScript error occurred in the main process

Apipost 私有化火热进行中

撰写答案

只服务于

前后端、移动端、测试人员

提问题 发布您遇到的Bug和问题,上万名大牛和开发者来帮您解决!