process.env.PORT || 3000
在Node.js中的用途是什么?我在某个地方看到了这个:
app.set('port', process.env.PORT || 3000);
如果用它来设置3000
作为监听端口,我能用这个代替吗?
app.listen(3000);
如果不是,为什么?
发布于 2013-09-18 13:45:18
在许多环境中(例如Heroku),通常情况下,您可以设置环境变量PORT
来告诉您的web服务器要侦听哪个端口。
所以process.env.PORT || 3000
的意思是:不管环境变量PORT中有什么,如果那里什么都没有,就是3000。
因此,您可以将其传递给app.listen
或app.set('port', ...)
,这将使您的服务器能够接受来自环境的“要侦听的端口”参数。
如果您将硬编码的3000
传递给app.listen()
,那么您将始终侦听端口3000,该端口可能只适合您,也可能不适合您,具体取决于您的要求和运行服务器的环境的要求。
发布于 2016-05-02 10:14:04
当在另一个服务(如Heroku、Nodejitsu和AWS)上托管您的应用程序时,您的主机可能会为您独立地配置process.env.PORT
变量;毕竟,您的脚本在它们的环境中运行。
亚马逊的Elastic Beanstalk做到了这一点。如果您尝试设置静态端口值,如3000
,而不是process.env.PORT || 3000
,其中3000是您的静态设置,那么您的应用程序将导致500网关错误,因为亚马逊正在为您配置端口。
这是一个最小的Express应用程序,将部署在Amazon的Elastic Beanstalk上:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
// use port 3000 unless there exists a preconfigured port
var port = process.env.PORT || 3000;
app.listen(port);
发布于 2021-08-30 17:08:02
process.env.PORT || 3000
表示:process.env.PORT
表示您手动设置的PORT
编号。3000
是默认的port
。如果您没有手动设置,那么它将收听3000。
代码中的app.set('port', process.env.PORT || 3000)
或app.listen(3000)
的含义是相同的。它只说明它应该侦听哪个端口作为来自环境的参数。
3000
是传递给app.listen()
的硬编码参数,这意味着无论何时运行后端代码,都会侦听port 3000
,这可能适合您,也可能不适合您,这取决于您的要求和运行服务器的环境的要求。
https://stackoverflow.com/questions/18864677
复制相似问题