Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Heroku_Restify - Fatal编程技术网

Node.js Heroku未使用定义的端口环境变量

Node.js Heroku未使用定义的端口环境变量,node.js,heroku,restify,Node.js,Heroku,Restify,我使用node.js和Heroku制作了一个小应用程序,设置了本地.env文件,还使用了Heroku config:set VARNAME=varValue来定义它应该在本地和远程监听的端口 PROD_MONGODB=mongodb://xxxxxxxxx@dxxxxxxxx:12345/server PORT=3000 我还检查了Heroku上的应用程序仪表盘,我可以确认VAR设置正确 下面是使用restify的服务器启动代码 app.listen(process.env.PORT, fun

我使用node.js和Heroku制作了一个小应用程序,设置了本地
.env
文件,还使用了
Heroku config:set VARNAME=varValue
来定义它应该在本地和远程监听的端口

PROD_MONGODB=mongodb://xxxxxxxxx@dxxxxxxxx:12345/server
PORT=3000
我还检查了Heroku上的应用程序仪表盘,我可以确认VAR设置正确

下面是使用restify的服务器启动代码

app.listen(process.env.PORT, function() {
    console.log('Server listening on port number', process.env.PORT);
});
如果我使用heroku local在本地运行应用程序,它会像我预期的那样在端口3000上运行:

Orion:.......$ heroku local
forego | starting web.1 on port 3000
web.1  | 
web.1  | Server listening on port number 3000
但当我在Heroku上部署应用程序时,我使用了一个看似随机的端口:

2015-09-28T15:15:51.400324+00:00 app[web.1]: Server listening on port number 56680
2015-09-28T15:15:51.486396+00:00 heroku[web.1]: State changed from starting to up

我还能做些什么来确保Heroku使用我定义为环境变量的端口吗?

您没有定义
port
-Heroku会自动将其作为环境的一部分提供。

我不理解这一部分,谢谢。此外,根据另一个问答,Heroku asigns可以使用它想要的任何端口,但应用程序始终在端口80上提供服务。是的,该应用程序将在80(或443用于HTTPS)上提供。在内部,它将监听分配的
端口