Ubuntu 上 Node.js 启动失败的原因有很多,下面我按常见原因 → 排查方法 → 解决办法给你梳理一下,你可以对照看是哪一种。
现象
command not found: node
排查
which node
which npm
node -v
解决
sudo apt update
sudo apt install nodejs npm
或安装指定版本(推荐):
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
现象
SyntaxError: Unexpected token ...
或
ERR_OSSL_EVP_UNSUPPORTED
原因
解决
export NODE_OPTIONS=--openssl-legacy-provider
现象
Error: listen EADDRINUSE: address already in use :::3000
排查
sudo lsof -i:3000
# 或
sudo netstat -tulnp | grep 3000
解决
kill -9 PID
或改端口:
PORT=4000 node app.js
现象
Cannot find module 'express'
解决
npm install
(生产环境)
npm install --production
现象
EACCES: permission denied
解决(推荐)
sudo chown -R $USER:$USER ~/.npm
sudo chown -R $USER:$USER project_dir
不要用 sudo node
现象
systemctl status mynode
journalctl -u mynode
常见错误
node 绝对路径示例 service
[Unit]
Description=Node App
[Service]
ExecStart=/usr/bin/node /var/www/app/index.js
WorkingDirectory=/var/www/app
User=ubuntu
Restart=always
[Install]
WantedBy=multi-user.target
现象
Error: Cannot find module '/app/server.js'
解决
node /full/path/index.js
把完整报错贴出来,我可以精准判断:
node app.js 2>&1 | tee error.log
lsb_release -a)node -v)我可以一步一步帮你修 ✅