提问者:小点点

dotenv在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运行应用程序时,端口是3000而不是4000。为什么我的.envport变量未定义?


共2个答案

匿名用户

在端口变量之前不需要env。所以你得到的是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}`);
});