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

NestJS/Prisma中出现"The 'code'参数必须为数字类型"错误

NestJS + Prisma 解决 "code参数必须是数字" 错误的思路

从错误栈信息分析,问题根源是Prisma客户端内部调用process.exit()时传入了字符串'SIGTERM',但Node.js要求process.exit()的参数必须为数字。以下是具体解决步骤:

  • 升级Prisma版本:该问题属于Prisma已知bug,已在后续版本修复。执行命令完成升级:

    npm install @prisma/client@latest
    npx prisma generate
    

    升级后务必重新生成客户端,确保代码同步。

  • 检查Node.js版本兼容性:确认你的Node.js版本符合Prisma官方要求。部分旧版Node.js(如14.x及以下)的进程信号处理逻辑与新版Prisma存在冲突,建议切换到Prisma推荐的LTS版本(如18.x或20.x)。

  • 排查自定义信号处理逻辑:检查NestJS应用中是否有手动监听SIGTERM等进程信号的代码,这类自定义逻辑可能和Prisma内部的退出处理冲突。暂时移除相关代码,验证错误是否消失。

  • 统一部署与开发环境的Node版本:若仅部署后出现错误,确认服务器(或Docker镜像)的Node.js版本与本地开发环境一致,避免环境差异导致的兼容问题。

  • 临时错误屏蔽(不推荐长期使用):若以上方案暂时无法落地,可在应用入口添加全局异常捕获,过滤该特定错误:

    process.on('uncaughtException', (err) => {
      if (err.message.includes('The "code" argument must be of type number')) {
        return;
      }
      console.error('未捕获异常:', err);
      process.exit(1);
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:15:06