heroku错误:找不到模块'/app/index.js'

时间:2018-06-14 10:48:34

标签: node.js django heroku

我正在主办一个关于heroku的大学项目,我需要主持一个django应用程序,它也需要一个npm库但我搜索了很多如何做到这一点,并且我认为我得到了它的手但现在我得到这个错误:

2018-06-14T10:19:22.798022+00:00 app[web.1]:     throw err;

2018-06-14T10:19:22.798023+00:00 app[web.1]:     ^

2018-06-14T10:19:22.798024+00:00 app[web.1]: 

2018-06-14T10:19:22.798026+00:00 app[web.1]: Error: Cannot find module '/app/server.js'

2018-06-14T10:19:22.798028+00:00 app[web.1]:     at Function.Module._resolveFilename (module.js:547:15)

2018-06-14T10:19:22.798029+00:00 app[web.1]:     at Function.Module._load (module.js:474:25)

2018-06-14T10:19:22.798030+00:00 app[web.1]:     at Function.Module.runMain (module.js:693:10)

2018-06-14T10:19:22.798031+00:00 app[web.1]:     at startup (bootstrap_node.js:191:16)

2018-06-14T10:19:22.798033+00:00 app[web.1]:     at bootstrap_node.js:612:3

这是我的package.json:

{
  "name": "dpl-webtech",
  "version": "1.0.0",
  "description": "DBL - Webtech Group D24",
  "main": "index.js",
  "scripts": {
    "start": "nf start"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/spiderangel123/DPL-WebTech.git"
  },
  "author": "Ahmad Alsarakbi",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/spiderangel123/DPL-WebTech/issues"
  },
  "homepage": "https://github.com/spiderangel123/DPL-WebTech#readme",
  "engines": {
    "node": "8.11.2",
    "npm": "6.1.0"
  },
  "dependencies": {
    "npm": "^6.1.0",
    "phantomjs-prebuilt": "^2.1.16"
  }
}[![enter image description here][1]][1]

这是我的procfile:

web: gunicorn DBL.wsgi
web: node ./index.js

files structure

4 个答案:

答案 0 :(得分:1)

请你分享文件结构。

当server.js的文件路径不正确时会发生此错误,因此请检查heroku正在采取的文件路径是否正确。

答案 1 :(得分:0)

如果您只需要包含软件包,则不需要包含web:node index.js但是我已经提到将它添加到Procfile中我读到有关如何将npm与heroku一起使用所以我有误解除非我添加它,否则它不会工作。

答案 2 :(得分:0)

尽管构建成功,但我最近也遇到了同样的问题。

问题不是出自您的项目存储库结构,其中缺少应用程序文件夹。 Heroku应用程序包含一个Procfile,该文件指定了由该应用程序的dynos执行的命令。加载应用程序时,Heroku将启动Web进程类型。

我的猜测是您没有Procfile,也没有定义Web流程。

最简单的方法是在项目的根目录中添加一个Procfile。 Procfile的名称没有扩展名。在其中,您添加具有以下结构的Web流程:<process type>: <command>

对于NodeJS应用,通常可以具有以下说明:

web: node dist/server/index.js

您只需要根据应用程序对其进行自定义。

答案 3 :(得分:0)

我收到此错误,就我而言,这是因为我的服务器启动文件是 index.ts 而不是 index.js,因为我正在使用打字稿。