Node.js 日志“没有输出”是一个很常见的问题,原因可能有很多种。下面按最常见到最容易忽略的顺序帮你排查:
console.log 吗?最常见情况:
console.log('hello')
如果没有输出,先确认:
console.log 之前就 return / throw✅ 测试:
console.log('start')
process.exit(0)
例如:
function main() {
console.log('log')
}
// 忘了调用
main()
或:
if (false) {
console.log('不会输出')
}
✅ 建议:在最顶部加一行
console.log('script started')
例如:
setTimeout(() => {
console.log('async log')
}, 1000)
如果进程提前退出:
process.exit(0) // ❌ 会直接杀掉
✅ 正确做法:等异步完成
你可能运行的是:
node app.js > /dev/null 2>&1
或:
npm start > log.txt
✅ 检查:
node app.js
例如 winston / pino:
const logger = require('winston')
logger.info('test') // ❌ 没 transports
✅ 至少要:
logger.add(new winston.transports.Console())
docker logs <container>
pm2 logs
在管道中:
node app.js | cat
✅ 可尝试:
node app.js 2>&1 | cat
✅ 换终端试试:
node app.js
例如:
console.log = () => {}
你可以直接回答我这几个问题,我可以精准帮你定位:
console.log 还是日志库?如果你愿意,把相关代码贴出来,我可以直接告诉你为什么没输出。