【问题标题】:Node App crashes in Heroku - Error: Cannot find moduleHeroku 中的节点应用程序崩溃 - 错误:找不到模块
【发布时间】:2019-01-21 12:03:14
【问题描述】:

我是 Heroku 的新手,正在尝试让我的第一个 Node 应用程序在其中运行。该应用程序是一个基本的会话身份验证应用程序。它在本地运行良好,但是当我部署到 Heroku 时,我得到:

2018-08-14T14:52:34.590534+00:00 heroku[web.1]: Starting process with command `node session.js`
2018-08-14T14:52:36.965521+00:00 heroku[web.1]: State changed from starting to crashed
2018-08-14T14:52:36.939947+00:00 heroku[web.1]: Process exited with status 1
2018-08-14T14:52:36.856913+00:00 app[web.1]: module.js:549
2018-08-14T14:52:36.856932+00:00 app[web.1]: throw err;
2018-08-14T14:52:36.856934+00:00 app[web.1]: ^
2018-08-14T14:52:36.856935+00:00 app[web.1]: 
2018-08-14T14:52:36.856937+00:00 app[web.1]: Error: Cannot find module '/app/session.js'
2018-08-14T14:52:36.856939+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:547:15)
2018-08-14T14:52:36.856940+00:00 app[web.1]: at Function.Module._load (module.js:474:25)
2018-08-14T14:52:36.856942+00:00 app[web.1]: at Function.Module.runMain (module.js:693:10)
2018-08-14T14:52:36.856943+00:00 app[web.1]: at startup (bootstrap_node.js:191:16)
2018-08-14T14:52:36.856945+00:00 app[web.1]: at bootstrap_node.js:612:3

我在本地和 Heroku 中运行相同版本的 Node 和 npm(尽管我没有在 package.json 中指定引擎)。 节点:8.11.3 npm: 5.6.0

这是我的 package.json:

{
  "name": "session",
  "version": "1.0.0",
  "description": "Authentication system for web portal",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "Damian Duffy",
  "license": "ISC",
  "dependencies": {
    "bcrypt": "^2.0.1",
    "body-parser": "^1.18.3",
    "cookie-parser": "^1.4.3",
    "express": "^4.16.3",
    "express-session": "^1.15.6",
    "morgan": "^1.9.0",
    "pg": "^7.4.3",
    "sequelize": "^4.37.10"
  }
}

我添加了 Procfile 来启动“web: node session.js”

我的 node_modules 目录被 Git 忽略了。

我整天都在努力让这个在 Heroku 上运行,但我似乎没有解决这个问题。我已经删除了 Heroku 上的应用程序,生成了新的 package.json,在本地重新测试,重新部署,但似乎没有任何效果。

【问题讨论】:

  • 错误在日志中,找不到session.js文件,错误:找不到模块'/app/session.js'。我会开始寻找那里。

标签: node.js heroku


【解决方案1】:

您能否尝试添加并提交丢失的文件,然后推送到 heroku 并再次检查?

【讨论】:

    【解决方案2】:

    问题出在我为 Heroku 创建的 Procfile 中。我已经指示 Heroku 启动 session.js 而不是 server.js。真是愚蠢的错误,只是在休息后才注意到它。

    我不完全理解附加到 session.js 拼写错误的“/app/”路径。我的节点应用程序中没有这样的路径。我猜 Heroku 会根据用户的测功机返回一个通用的“/app/”??

    【讨论】:

      猜你喜欢
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 2016-08-20
      • 2012-06-18
      • 1970-01-01
      相关资源
      最近更新 更多