宝塔运行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的地方即可正常调用

posted @ 2024-02-06 11:16  CarreyB  阅读(238)  评论(0编辑  收藏  举报