Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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
Node.js Heroku应用程序不断崩溃,因为端口未定义_Node.js_Express_Heroku - Fatal编程技术网

Node.js Heroku应用程序不断崩溃,因为端口未定义

Node.js Heroku应用程序不断崩溃,因为端口未定义,node.js,express,heroku,Node.js,Express,Heroku,这是我在server.js文件中的设置: const express = require('express'); const app = express(); const host = '0.0.0.0'; const PORT = process.env.PORT || 5001; app.listen(PORT, host, () => { console.log(`RABC Server is listening on port ${PORT}!`) }); app.use

这是我在server.js文件中的设置:

const express = require('express');
const app = express();

const host = '0.0.0.0';
const PORT = process.env.PORT || 5001;

app.listen(PORT, host, () => {
  console.log(`RABC Server is listening on port ${PORT}!`)
});

app.use(express.static('public'))
这是我的proc文件中的内容:

web:nodemon server.js 
这是我收到的错误:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
这是我记录端口时得到的结果:

端口的值为:未定义

在我的package.json脚本中,我有:

 "scripts": {
    "start": "node server.js", 
    "build": "sanity build"
 }
我没有.env文件,也不确定是否应该有一个,以及里面应该有什么

当我运行“heroku local web”并在本地托管时,一切正常


这是我第一次部署或托管应用程序。

更新
server.js
to

const express=require('express');
常量app=express();
const PORT=process.env.PORT | | 5001;
应用程序使用(express.static('public'))
应用程序侦听(端口,()=>{
log(`RABC服务器正在侦听端口${port}!`)
});
移动
应用程序。听
到最后

这只是一种约定,即使用逻辑和安全的初始化顺序,在启动服务器之前先配置服务器

参考:

另外,将Procfile更新为

web:npm run start

老兄,太感谢你了,这简直要了我的命,你不知道这对我有多大帮助。太棒了!我很高兴能帮上忙!干杯