***已修复,感谢所有帮助过的人。
您好,感谢您尝试帮助我。我已经通过谷歌和这里查看了修复,但无济于事。这是我问的第一个问题,所以如果我说的不够清楚或不够具体,我深表歉意,并会尽力解决。
我最近使用免费的 dyno(他们的 node.js buildpack)在 heroku 上部署了一个应用程序。
这个应用程序在我的本地主机上运行得非常好。当我开始部署过程并检查日志时,我遇到了这个错误:
2021-05-16T21:03:07.870774+00:00 heroku[web.1]: State changed from crashed to starting
2021-05-16T21:03:14.868295+00:00 heroku[web.1]: Starting process with command `npm start`
2021-05-16T21:03:18.871696+00:00 app[web.1]:
2021-05-16T21:03:18.871706+00:00 app[web.1]: > server@1.0.0 start /app
2021-05-16T21:03:18.871707+00:00 app[web.1]: > nodemon index.js
2021-05-16T21:03:18.871707+00:00 app[web.1]:
2021-05-16T21:03:19.162417+00:00 app[web.1]: [33m[nodemon] 2.0.7[39m
2021-05-16T21:03:19.167339+00:00 app[web.1]: [33m[nodemon] to restart at any time, enter `rs`[39m
2021-05-16T21:03:19.167341+00:00 app[web.1]: [33m[nodemon] watching path(s): *.*[39m
2021-05-16T21:03:19.167341+00:00 app[web.1]: [33m[nodemon] watching extensions: js,mjs,json[39m
2021-05-16T21:03:19.167342+00:00 app[web.1]: [32m[nodemon] starting `node index.js index.js`[39m
2021-05-16T21:03:19.271336+00:00 app[web.1]: internal/modules/cjs/loader.js:888
2021-05-16T21:03:19.271342+00:00 app[web.1]: throw err;
2021-05-16T21:03:19.271342+00:00 app[web.1]: ^
2021-05-16T21:03:19.271343+00:00 app[web.1]:
2021-05-16T21:03:19.271343+00:00 app[web.1]: Error: Cannot find module '/app/index.js'
2021-05-16T21:03:19.271379+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:885:15)
2021-05-16T21:03:19.271580+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:730:27)
2021-05-16T21:03:19.271582+00:00 app[web.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
2021-05-16T21:03:19.271583+00:00 app[web.1]: at internal/main/run_main_module.js:17:47 {
2021-05-16T21:03:19.271587+00:00 app[web.1]: code: 'MODULE_NOT_FOUND',
2021-05-16T21:03:19.271587+00:00 app[web.1]: requireStack: []
2021-05-16T21:03:19.271588+00:00 app[web.1]: }
2021-05-16T21:03:19.279342+00:00 app[web.1]: [31m[nodemon] app crashed - waiting for file changes before starting...[39m
2021-05-16T21:04:15.043653+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2021-05-16T21:04:15.098622+00:00 heroku[web.1]: Stopping process with SIGKILL
2021-05-16T21:04:15.255205+00:00 heroku[web.1]: Process exited with status 137
2021-05-16T21:04:15.331085+00:00 heroku[web.1]: State changed from starting to crashed
我尝试将我的启动脚本更改为不包含 nodemon,我尝试将我的 index.js 移动到 app/index.js,因为它在该日志中说,我尝试使用“node”的任意组合更改启动脚本index.js" "nodemon index.js"
我不知道为什么它不能正常工作。在该日志的末尾,即使我将其设置为 process.env.PORT,由于未与 $PORT 绑定,它也会超时。
欢迎提出任何建议,如果我需要提供更多代码,请告诉我。
这是应用程序的文件结构: File structure
这是我的 index.js 的结构: index.js
答案 0 :(得分:0)
这可能不是您的主要错误,但需要为 heroku 单独设置环境变量,heroku 不会从您的本地 .env 文件中读取。
您可以通过转到您的应用程序,然后在 settings->config vars 下进行设置,在这里您只需从 .env 文件中一一复制和粘贴键/值即可。
答案 1 :(得分:0)
我认为这就是它失败的原因
[32m[nodemon] starting `node index.js index.js`[39m
2021-05-16T21:03:19.271336+00:00 app[web.1]: internal/modules/cjs/loader.js:888
2021-05-16T21:03:19.271342+00:00 app[web.1]: throw err;
我认为你的节点运行脚本是错误的,它试图运行
node index.js index.js
检查您的 Package.json 文件
潜在问题 2
如果不是上面那么第二个问题我看到的是 index.js 的路径
2021-05-16T21:03:19.271343+00:00 app[web.1]: Error: Cannot find module '/app/index.js'
2021-05-16T21:03:19.271379+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:885:15)
2021-05-16T21:03:19.271580+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:730:27)
您的 index.js 是否与 package.json 处于同一级别,还是位于文件夹内?
因为当您看到错误日志时,它说无法加载模块 /app/index.js
[假设 /app/
是您的根文件夹]
如果文件以大写 I 开头并且在节点脚本中您有小 i 或反之亦然,也会发生这种情况