[英]Can't use dotenv with ES6 modules
我正在將 Express 應用程序從 CommonJS require
語法移動到 ES6 模塊import
語法。 這很好,直到我嘗試使用dotenv
加載我的環境變量,並且每次我嘗試訪問這些變量時,它們都會返回未定義的狀態。
應用程序.js
// importing environmental variables
import dotenv from 'dotenv';
dotenv.config();
import express from 'express';
let x = process.env.David;
console.log(x);
.env
David = test
import "dotenv/config.js";
對於所有文件中的.env
變量,請使用上述內容。
嘗試將 env 配置放在一個單獨的文件中並先導入它。
// loadEnv.js
import dotenv from 'dotenv';
dotenv.config()
// index.js
import './loadEnv';
import express from 'express';
let x = process.env.David;
console.log(x);
// importing environmental variables
import express from 'express';
import { config } from "dotenv";
config({ path: process.ENV })
let x = process.env.David;
console.log(x);
import path from 'path';
import { fileURLToPath } from 'url';
import "dotenv/config.js";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
dotenv.config({path:`${__dirname}/.env`});
我這樣做是因為 my.env 文件位於 src 文件夾(projectName/src/.env)中,並且 dotenv 未檢測到它。 但實際上更容易將.env 文件移動到項目文件夾(projectName/.env)並使用:
import "dotenv/config.js";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.