Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 部署在Heroku上的节点应用程序立即崩溃_Javascript_Node.js_Heroku - Fatal编程技术网

Javascript 部署在Heroku上的节点应用程序立即崩溃

Javascript 部署在Heroku上的节点应用程序立即崩溃,javascript,node.js,heroku,Javascript,Node.js,Heroku,***修好了,谢谢所有帮助过你的人 你好,谢谢你试图帮助我。我已经通过谷歌和这里寻找了一个解决方案,但没有结果。这是我问的第一个问题,如果我不清楚或不够具体,我道歉,并将尽可能地澄清 我最近在heroku上使用免费的dyno(他们的node.js构建包)部署了一个应用程序 此应用程序在我的本地主机上运行良好。启动部署过程并检查日志时,遇到以下错误: 2021-05-16T21:03:07.870774+00:00 heroku[web.1]: State changed from cra

***修好了,谢谢所有帮助过你的人

你好,谢谢你试图帮助我。我已经通过谷歌和这里寻找了一个解决方案,但没有结果。这是我问的第一个问题,如果我不清楚或不够具体,我道歉,并将尽可能地澄清

我最近在heroku上使用免费的dyno(他们的node.js构建包)部署了一个应用程序

此应用程序在我的本地主机上运行良好。启动部署过程并检查日志时,遇到以下错误:

    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”的任意组合来更改开始脚本

我不知道为什么它不能正常工作。在该日志的末尾,由于未绑定$PORT,它也会超时,即使我将其设置为process.env.PORT

欢迎任何建议,如果我需要提供更多的代码,请让我知道

以下是应用程序的文件结构:

以下是my index.js的结构:

这可能不是您的主要错误,但需要为heroku单独设置环境变量,heroku不会从本地.env文件中读取


您可以通过转到应用程序,然后在“设置->配置变量”下设置这些值,在这里您可以从.env文件中逐个复制和粘贴键/值。

我认为这就是它失败的原因

[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或反之亦然,则也可能发生这种情况。您可以共享节点应用程序的文件结构吗?根目录中是否存在
index.js
?刚刚更新了文件结构和index.js的图片。它位于项目的根目录中。谢谢你看!谢谢你的建议!我应该在我的主要帖子中补充说,我已经通过heroku设置了配置变量。据我所知,它应该读取我通过仪表板或heroku CLI设置为“process.env.VARIABLE”的任何变量,还是不正确?在部署之前,我有一个端口变量,但由于heroku使用自己的端口,我将其删除。是的,您仍然可以像使用.env文件一样正常使用它们。不幸的是,这并没有解决它,但很高兴知道以后会这样做,谢谢。我认为这也是问题所在,但我的启动脚本如下:
“start”:“node index.js”、“dev”:“nodemon index.js”,
就是这样……非常感谢Nishant,我觉得自己是个白痴。祝你度过愉快的一天