在 Node.js 中排查日志和错误,通常可以按下面这套思路来,从看日志 → 定位错误 → 复现 → 修复 → 防止逐步进行。
console.log / info / warn / errorpm2 logsdocker logs <container>常见位置:
logs//var/log/一个典型 Node.js 错误:
TypeError: Cannot read properties of undefined (reading 'id')
at getUser (/app/user.js:12:20)
at /app/server.js:30:5
重点关注:
TypeError:类型不对ReferenceError:变量未定义SyntaxError:语法错误process.on('uncaughtException', err => {
console.error('未捕获异常', err);
});
process.on('unhandledRejection', err => {
console.error('未处理的 Promise', err);
});
✅ 建议:
async/await + try catch.then()app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('服务器错误');
});
排查:
工具:
node --inspect
或:
pm2 monit
常见原因:
pm2 logs
console.log('userId=', userId);
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
transports: [new winston.transports.File({ filename: 'app.log' })]
});
你可以贴:
我可以直接帮你精确定位问题原因和修复方式。