首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是Node.js中的process.env.PORT?

什么是Node.js中的process.env.PORT?
EN

Stack Overflow用户
提问于 2013-09-18 13:42:44
回答 4查看 247.8K关注 0票数 216

process.env.PORT || 3000在Node.js中的用途是什么?我在某个地方看到了这个:

 app.set('port', process.env.PORT || 3000);

如果用它来设置3000作为监听端口,我能用这个代替吗?

app.listen(3000);

如果不是,为什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-18 13:45:18

在许多环境中(例如Heroku),通常情况下,您可以设置环境变量PORT来告诉您的web服务器要侦听哪个端口。

所以process.env.PORT || 3000的意思是:不管环境变量PORT中有什么,如果那里什么都没有,就是3000。

因此,您可以将其传递给app.listenapp.set('port', ...),这将使您的服务器能够接受来自环境的“要侦听的端口”参数。

如果您将硬编码的3000传递给app.listen(),那么您将始终侦听端口3000,该端口可能只适合您,也可能不适合您,具体取决于您的要求和运行服务器的环境的要求。

票数 287
EN

Stack Overflow用户

发布于 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);
票数 46
EN

Stack Overflow用户

发布于 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,这可能适合您,也可能不适合您,这取决于您的要求和运行服务器的环境的要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18864677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档