繁体   English   中英

我可以将 .env 读入变量而不是 process.env 吗?

[英]Can I read .env into a variable instead of into process.env?

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

在我的特定.env中,用户名和密码对将存储在服务器端进行身份验证。 我想在不覆盖process.env的情况下读取文件内容,因为我的应用程序的其他部分依赖于未被覆盖的值。 我知道在dotenv中默认设置了override: false ,因此这些值不会被覆盖,但我仍然需要访问新值。 一个示例是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")));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM