无法在 Windows 中为节点设置 process.env.PORT 变量

问题描述 投票:0回答:7
const express = require('express'); 
const api = express();

api.get('/', (req, res) => res.send('Hello World'));

var port = process.env.PORT || 3000;

api.listen(port, () => console.log(`Listening to port 
${port}`));

我正在使用这个命令 设置

PORT=5000
设置后仍然显示正在监听3000端口

node.js
7个回答
22
投票

您必须使用用于设置变量值的同一 CLI 程序(和实例)运行文件。

  • 在命令提示符中:

    set PORT=5000

  • 在 Power Shell 中:

    $env:PORT=5000

  • 在 Bash (Windows) 中:

    export PORT=5000

之后,运行你的程序

node app.js
,它就可以工作了。

如果您使用 VSCode 的集成终端来运行文件,但使用另一个 CLI 程序(或实例)来设置

PORT
的值,则不会起作用,除非您使用
setx PORT 5000
永久更改该值使用命令提示符或 Power Shell(我不知道如何从 Windows 的 Bash 中执行此操作)。在这种情况下,您需要重新启动 VSCode 才能使用最后一个值
PORT
运行文件。


8
投票

应该是这样的

For Command Prompt: set PORT=5000
For Power Shell: $env:PORT=5000
For Bash (Windows): export PORT=5000

不是这样的

For Command Prompt: set PORT = 5000
For Power Shell: $env:PORT = 5000
For Bash (Windows): export PORT = 5000

=
符号前后没有空格。


2
投票

如果您使用的是powershell或vscode终端

$env:PORT=5000

如果您使用 Windows 命令提示符

set PORT=5000

如果您使用的是 Bash 或 MAC 终端

export PORT=5000

对我来说,我使用 vscode 终端, $env:PORT=5000 工作正常。


1
投票

命令提示符
中使用set PORT=5000而不是vscode终端。一定会成功的。


0
投票

const 端口 = Number(process.env.PORT)

我不知道我们是否有同样的问题,或者你是否解决过这个问题,但我为此创建了一个帐户JUST,因为我无法一辈子让 process.env.PORT 工作,尽管我一直在关注每个人的代码(似乎没有人必须将 process.env.PORT 显式转换为数字)。需要解决这个问题才能在 Heroku 上部署我的应用程序,它分配 PORT 变量。可以高兴地说它有效并且今晚不会失眠:)


0
投票

有时会出现如下错误: “export”不被识别为内部或外部命令, 可运行的程序或批处理文件。

使用此命令提示符(Windows):

set PORT=5000

0
投票

安装 dotenv 解决了我的问题。

npm I dotenv

然后将其添加到你的js文件中

require('dotenv').config()
© www.soinside.com 2019 - 2024. All rights reserved.