如何从节点中的 express 访问 .env 变量?

How to access .env variables from express in node?

我尝试在 express 文件中 return 我的环境变量,但我得到 null.

这是我的文件夹结构

--backend
  --.env
  --src
    --index.ts

--frontend
//.env
TEST: mytest
//index.ts
app.get("/api/test", (request, response) => {
  response.send({test: [process.env.TEST]})
})

安装 https://www.npmjs.com/package/dotenv

用法 尽早在您的应用程序中要求并配置 dotenv。

require('dotenv').config()


// server.js
console.log(`Your port is ${process.env.PORT}`); // undefined
const dotenv = require('dotenv');
dotenv.config();
console.log(`Your port is ${process.env.PORT}`); // 8626

所以在你的情况下

/src/ 
   index.ts
   .env

您还可以检查错误

const result = dotenv.config()

if (result.error) {
  throw result.error
}

console.log(result.parsed)
  • .env中应该是:
TEST=mytest
  • (如果上述修改不起作用)由于 .envindex.ts 文件不在同一文件夹中,您可能需要提供 .env 的路径文件。

在您的 index.ts 文件的开头:

require('dotenv').config({path : path.resolve(__dirname, '../.env')});

通过做两件事解决了这个问题:

首先使用终端创建了 .env 文件。 (see reference)

然后,我将 .env 文件移动到后端的 root 文件夹(从 src 中删除)