无法引用.env文件的变量
在中国,需要背景信息。
我在Udemy上学习时,发现.env库无法正常工作,所以将其分享出来。
这个问题
目录图
07_MongoDB
07_MongoDB是一种用于管理非关系型数据库的开源数据库系统。
├── 010_连接_查找/开始/样例.mjs
├── 节点模块
. 查找.env文件
└── 包.json
import env from 'dotenv';
env.config();
// console.log(env.config())
import { MongoClient } from 'mongodb';
const client = new MongoClient(process.env.MONGO_URI);
async function getCollection() {
try {
await client.connect();
console.log("接続完了")
const db = client.db('bookshelf');
return db.collection('books');
} catch (e) {
console.log(e)
await client.close();
}
}
async function getAllBooks() {
const col = await getCollection();
const cursor = col.find();
const result = await cursor.toArray();
console.log(result);
await client.close();
}
getAllBooks();
应该通过env.config()方法使得能够使用env文件中的变量(process.env.MONGO_URI)。
发生错误。
当查看[Cannot read properties of undefined]错误时,发现无法调用.env文件中的变量。
以下是一个选项的中文本地化改写:
https://qiita.com/whiteraccoon/items/34e593dbe305e37ac6e4
请注意,此链接为一个网站链接,我们无法将其改写为中文。
所以,使用console.log(env.config())进行查询。
随后
据说在 start 目录下没有 .env 文件呀
因为它就在 07_mongodb 文件夹下面嘛、、、
错误的原因
dotenv库在执行node命令时会在当前目录下查找.env文件。
如果在本次中,在start目录下执行Example.mjs文件时,它将尝试查找start目录下的.env文件。
所以,如果在07_mongodb目录下执行node命令就可以了。