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

基于NODE_ENV的条件错误处理代码执行挂起问题求助

问题解决:Express错误处理器if语句挂起

你的代码核心问题是**else if语法错误**,导致JavaScript解析失败,代码无法正常执行分支逻辑。

错误点说明

你写的else if结构是错误的:

else if {
  (currentMode === 'production') {
     sendErrorProd(err, res);
  }

正确的else if语法应该是else if (条件),你把条件的括号写到了大括号里面,这会直接触发语法报错,导致代码挂起。另外currentMode变量未声明,容易造成全局变量污染。

修正后的完整代码

module.exports = (err, req, res, next) => {
  // Express识别错误中间件的标志是4个参数
  err.statusCode = err.statusCode || 500; // 读取错误对象的状态码,默认500
  err.status = err.status || 'error';

  console.log(process.env.NODE_ENV);
  const currentMode = process.env.NODE_ENV;
  if (currentMode === 'development') {
    sendErrorDev(err, res);
  } else if (currentMode === 'production') {
    sendErrorProd(err, res);
  }
};

额外注意

确保sendErrorDev和sendErrorProd函数已经在当前模块中定义或正确引入,否则需要补充这两个函数的具体实现逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:12:03