dotenv 在 express 中未定义

dotenv is undefined in express

我的根目录中有一个 .env 文件,里面有 PORT=4000

我的app.js有以下代码

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

require('dotenv').config();

app.get('/', (req, res) => {
  res.send('Hello World!!!');
  console.log(port);
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

但是当我 运行 带有 nodemon app.js 的应用程序时,port 是 3000 而不是 4000。为什么我的 .env PORT 变量未定义?

您在导入变量之前不需要环境。所以你得到的是 3000 而不是 4000。只需使用此代码。它将正常工作。

    const express = require('express');
    const app = express();
    require('dotenv').config();
    const port = process.env.PORT || 3000;
    
    app.get('/', (req, res) => {
      res.send('Hello World!!!');
      console.log(port);
    });
    
    app.listen(port, () => console.log(`Example app listening on port ${port}!`));

此代码解决了问题

require('dotenv').config();

const express = require('express');
const app = express();
const port = process.env.PORT;

app.get('/', (req, res) => {
  res.send('Hello World!!!');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});