宝塔运行nodejs项目成功,但无法访问
【问题描述】
1. nodejs + express搭建后端项目
2. 阿里云 + 宝塔,运行该项目
3. 项目运行成功,但接口无响应
4. 但项目在本地运行是正常de
// package.json { "scripts": { "start": "set NODE_ENV=development && nodemon ./bin/www.js", "start:production": "set NODE_ENV=production && nodemon ./bin/www.js", "build": "webpack --config production.config.js --mode=production --node-env=production" }, }
【原因】
1. 宝塔面板显示启动成功,但查看项目运行日志可知,并非成功
可以看到,项目app crashed.... 这表示项目崩溃了
2. 实际上,是因为项目启动成功了,但是项目里面的代码报错了
3. 可以看到,package.json中的执行指令,本地是window环境,设置环境变量用的是 set 指令,而阿里云是linux系统,对应的设置环境变量应该用 export 指令
【解决】
1. 修改package.json文件
设置环境变量:
windows:
"start": "set NODE_ENV=development && nodemon ./bin/www.js",
linux:
"start": "export NODE_ENV=development nodemon ./bin/www.js",
此外,我们还可以使用第三方包 cross-env ,来设置环境变量,可以跨平台设置
"start": "cross-env NODE_ENV=development nodemon ./bin/www.js",
2. 在对应调用 process.env.NODE_ENV的地方即可正常调用