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

执行node-jq时抛出event.js错误的问题排查求助

问题根因分析

这个报错的核心是ENOENT错误,代表系统找不到指定路径的可执行文件,也就是C:\reporting-app\node_modules\node-jq\bin\jq这个文件不存在,和你的业务代码逻辑无关。

为什么之前稳定运行6个月,这次部署后出问题

node-jq在安装时会自动根据当前运行的操作系统下载对应版本的jq二进制文件:

  • Linux/macOS下生成的二进制文件名为jq
  • Windows下生成的二进制文件名为jq.exe

出现报错大概率是本次部署流程出现了以下变动:

  • 部署环境的操作系统发生了变更,或者复用了其他操作系统环境下生成的node_modules缓存
  • 依赖安装步骤新增了--ignore-scripts参数,跳过了node-jq自动下载二进制的执行脚本
  • 部署服务器新增了网络限制,导致node-jq安装时无法正常下载对应版本的jq二进制

排查&解决步骤

  1. 首先进入C:\reporting-app\node_modules\node-jq\bin\目录,确认目录下存在的文件:
    • 如果存在jq.exe,说明是node-jq版本的路径识别bug,没有自动匹配Windows下的exe后缀
    • 如果目录为空,说明安装时没有成功下载二进制文件
  2. 通用修复方案:
    删除当前项目的node_modules目录和锁文件(package-lock.json/yarn.lock),在当前部署的Windows环境下执行不带额外参数的npm install,让node-jq自动下载适配Windows的二进制文件
  3. 快速修复方案:
    你可以直接在调用jq.run时手动指定jq的二进制路径,避免识别错误:
    execute(source) {
        return jq.run(this.query, source, {
            input: 'string',
            slurp: true,
            jqPath: 'C:\\reporting-app\\node_modules\\node-jq\\bin\\jq.exe'
        });
    }
    
    如果是内网环境无法自动下载,也可以手动下载Windows版的jq二进制,放到任意目录后通过jqPath参数指定路径即可。
  4. 版本兼容修复:
    你当前使用的node-jq@1.12.0存在已知的Windows路径适配问题,也可以直接升级node-jq到最新稳定版解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:15:05