如何从节点中的 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
- (如果上述修改不起作用)由于
.env
与 index.ts
文件不在同一文件夹中,您可能需要提供 .env
的路径文件。
在您的 index.ts
文件的开头:
require('dotenv').config({path : path.resolve(__dirname, '../.env')});
通过做两件事解决了这个问题:
首先使用终端创建了 .env
文件。 (see reference)
然后,我将 .env
文件移动到后端的 root
文件夹(从 src
中删除)
我尝试在 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
- (如果上述修改不起作用)由于
.env
与index.ts
文件不在同一文件夹中,您可能需要提供.env
的路径文件。
在您的 index.ts
文件的开头:
require('dotenv').config({path : path.resolve(__dirname, '../.env')});
通过做两件事解决了这个问题:
首先使用终端创建了 .env
文件。 (see reference)
然后,我将 .env
文件移动到后端的 root
文件夹(从 src
中删除)