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

ExpressJS中仅在dev环境输出日志不生效问题排查

解决ExpressJS仅在dev环境显示日志的判断失效问题

问题原因

你在Windows环境下使用set NODE_ENV=dev & node index.js设置环境变量时,NODE_ENV的值可能带有多余的空格(比如'dev '),导致严格相等判断process.env.NODE_ENV === 'dev'不成立。从你打印的process.env.NODE_ENV和类型可以验证这一点——值的末尾大概率有空格。

解决方案

方案1:修正Windows环境变量设置命令

去掉set命令中等号后、&前的空格,确保环境变量值无多余空格:

// package.json中的scripts
"dev": "set NODE_ENV=dev&node index.js"

方案2:在判断时去除字符串前后空格

修改中间件的判断逻辑,使用trim()去掉环境变量值的前后空白字符:

server.app.use(function(request, response, next) {
  console.log(process.env.NODE_ENV, typeof process.env.NODE_ENV);
  // 用trim()去除前后空格后再判断
  if (process.env.NODE_ENV?.trim() === 'dev') {
    console.log(colors.green('URL : ' + request.originalUrl));
  }
  next();
});

方案3:使用跨平台工具统一设置环境变量

安装cross-env包(跨平台兼容Windows和类Unix系统):

npm install cross-env --save-dev

然后修改package.json中的命令:

"dev": "cross-env NODE_ENV=dev node index.js"

这种方式无需担心不同系统的环境变量设置差异,更推荐在跨平台项目中使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:10:56