我可以读取.env到一个变量,而不是到process.env?



我想在Node.js中将我的.env文件的内容读取为process.env以外的变量。我目前正在使用dotenv库,但如果有人提供替代方案,我愿意使用其他东西。

在我的特定.env中,用户名和密码对将存储在服务器端以进行身份验证。我想在不覆盖process.env的情况下读取文件内容,因为我的应用程序的其他部分依赖于未被覆盖的值。我知道override: falsedotenv中默认设置,因此这些值不会被覆盖,但我仍然需要访问新值。一个例子是USERNAME在一个文件中被设置为'xterm',用于第三方终端登录,但如果用户的用户名在dotenv文件中是'USERNAME',那么我需要根据值验证他们的密码,而不是针对'xterm',如果这有意义的话。

如果我能将.env文件中的数据聚合到类似process.env.specialValues的文件中,并通过嵌套属性访问信息,那将是完美的。

为清晰起见,期望的最终行为示例:process.env.specialValues.USERNAME

使用parse()方法将数据加载到一个变量

const { readFileSync } = require("fs");
const { resolve } = require("path");
const { parse } = require("dotenv");
const env = parse(readFileSync(resolve(process.cwd(), ".env")));

或者如果你使用ES模块

import { readFileSync } from "node:fs";
import { resolve } from "node:path";
import { parse } from "dotenv";
const env = parse(readFileSync(resolve(process.cwd(), ".env")));

最新更新