AWS部署Express应用遇TypeError问题求助(PM2环境)
解决AWS PM2环境中jsonwebtoken的TypeError问题
错误信息
0|index | TypeError: Right-hand side of 'instanceof' is not an object 0|index | at Object.module.exports [as sign] (/home/ubuntu/newapp/node_modules/jsonwebtoken/sign.js:108:58) 0|index | at /home/ubuntu/newapp/index.js:100:21
问题场景
本地运行Express应用正常,但部署到AWS服务器用PM2启动时出现上述错误,怀疑相关代码如下:
let payload = { useremail: user.email, _id: user._id, }; let token = jwt.sign(payload, "secretKey");
解决步骤
- 对齐Node.js版本:本地和AWS服务器的Node版本需一致,分别执行
node -v查看版本,若不一致,升级/降级服务器Node版本至本地相同版本。 - 重装依赖并清理缓存:在AWS服务器项目目录执行以下命令,修复可能损坏的依赖:
执行完成后重启PM2:rm -rf node_modules package-lock.json npm cache clean --force npm installpm2 restart index - 锁定jsonwebtoken版本:查看本地
jsonwebtoken版本(npm list jsonwebtoken),在服务器安装相同版本:
替换npm install jsonwebtoken@x.x.xx.x.x为你本地的版本号,确保依赖版本一致。 - 验证PM2运行上下文:执行
pm2 show index检查工作目录(cwd)是否为/home/ubuntu/newapp,若路径错误,重新指定目录启动:pm2 start index.js --cwd /home/ubuntu/newapp
内容的提问来源于stack exchange,提问作者sam as
相关产品推荐
相关产品推荐

