无法引用.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)。

发生错误。

Untitled.png

当查看[Cannot read properties of undefined]错误时,发现无法调用.env文件中的变量。

以下是一个选项的中文本地化改写:

https://qiita.com/whiteraccoon/items/34e593dbe305e37ac6e4

请注意,此链接为一个网站链接,我们无法将其改写为中文。

所以,使用console.log(env.config())进行查询。

随后

Untitled.png

据说在 start 目录下没有 .env 文件呀

因为它就在 07_mongodb 文件夹下面嘛、、、

错误的原因

dotenv库在执行node命令时会在当前目录下查找.env文件。

如果在本次中,在start目录下执行Example.mjs文件时,它将尝试查找start目录下的.env文件。

所以,如果在07_mongodb目录下执行node命令就可以了。