栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何动态设置快递服务器的端口?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何动态设置快递服务器的端口?

如何在不进行硬编码甚至自行选择端口的情况下设置用于表达的端口?


选项1:环境变量(推荐)

通常,您会将您的应用程序部署到Heroku等托管服务提供商。根据主机的配置方式,系统将动态设置环境变量,您的应用将需要从此变量获取端口。例如,托管提供程序在运行您的应用程序时可能会运行以下命令:

$ PORT=1234 npm start

…并且在代码中,您可以像下面这样访问此变量:

const port = process.env.PORT;app.listen(port);

专家提示: 大多数托管服务提供商也允许您定义自定义环境变量。您可以通过创建以下任意变量在本地进行测试:

$ FOO=bar ADMIN_EMAIL=joe@example.com npm start

…并从如下代码访问这些变量:

const foo = process.env.FOO;       //-> "bar"const adminEmail = process.env.ADMIN_EMAIL;   //-> "joe@example.com"

选项2-特定于环境的配置文件(也强烈建议)

使用配置库中像这样一个可以让你有特定环境的配置选项。您的文件夹结构如下所示(注意文件名):

|- config   |- default.json   |- testing.json   |- production.json|- src   |- app.js

然后定义“默认”变量和特定于环境的变量:

default.json

{    "port": "3030",    "adminEmail": "dev@example.com"}

testing.json

{    "port": "5555"}

production.json

{    "adminEmail": "admin@example.com"}

配置库将始终使用 默认 变量。在 测试时 ,它将使用默认的管理员电子邮件和其他端口。在 生产时
,它将使用默认端口,但使用不同的管理员电子邮件。定义“节点环境”的方式是这样的(注意,我们使用与JSON配置文件相同的名称):

$ NODE_ENV=testing npm start$ NODE_ENV=production npm start

专家提示: 您的配置文件也可以引用环境变量!继续上面选项1中的示例,您可以这样定义生产配置:

production.json

{    "port": "PORT"}

配置库将查找名为“ PORT”的任何环境变量,并将使用该值。综上所述,运行应用程序的最终命令可能如下所示:

$ NODE_ENV=production PORT=47861 npm start

2.在中使用
app.set('port', portNum)
和直接使用端口号有什么区别
app.listen(portNum)


Express允许您使用

app.set
- 设置应用程序变量,但这只是定义变量的一种好方法。您稍后可以使用来获取这些变量的值
app.get

迟早,您将需要告诉您的应用监听特定端口上的流量。您可以执行以下操作:

const app = express();app.set('port', process.env.PORT);app.use((req, res) => { ... });app.listen(app.get('port'));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号