在 Debian 上“定位 Node.js 错误”通常分 系统层面 和 应用层面。下面给你一套实用排查思路,从最常见到进阶。
node -v
npm -v
which node
which npm
如果 command not found:
# Debian 常见安装方式
sudo apt install nodejs npm
# 或
sudo apt install nodejs
⚠️ Debian 仓库里的 node 可能版本偏旧,生产建议用 NodeSource 或 nvm
node app.js
常见错误类型:
Error: Cannot find module 'xxx' → 依赖没装SyntaxError → 代码语法问题EACCES → 权限问题EADDRINUSE → 端口被占用npm install
ls node_modules | head
如果之前用 root 装过:
sudo chown -R $USER:$USER .
systemctl status yourapp.service
journalctl -u yourapp.service -n 100
journalctl -u yourapp.service -f
示例 service:
[Unit]
Description=Node App
[Service]
ExecStart=/usr/bin/node /var/www/app/app.js
WorkingDirectory=/var/www/app
User=www-data
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
sudo setcap cap_net_bind_service=+ep /usr/bin/node
(绑定 80 / 443 端口时用)
检查当前用户:
whoami
node --trace-warnings app.js
node --inspect=0.0.0.0:9229 app.js
process.on('uncaughtException', e => {
console.error('UNCAUGHT:', e);
});
| 现象 | 可能原因 |
|---|---|
| node 命令不存在 | 只装了 nodejs |
| npm 很慢 | 用了旧源 |
| EACCES | 用 root 装了 npm |
| 端口占用 | 之前进程没退出 |
| 服务启动失败 | systemd 路径写错 |
你可以贴出:
cat /etc/os-release))我可以直接告诉你是哪一步出的问题以及怎么修。