Node.js &引用;dotenv.load()不是一个函数;在尝试运行节点脚本时

Node.js &引用;dotenv.load()不是一个函数;在尝试运行节点脚本时,node.js,Node.js,我正在尝试复制导入脚本,以便将我的Firebase RTD数据复制到Algolia。当尝试运行脚本时,它失败并说dotenv.load不是一个函数 我的.env文件与index.js文件位于同一目录中。我尝试过移动.env文件,但是没有用。以下是index.js的开始代码: const algoliasearch = require('algoliasearch'); const dotenv = require('dotenv'); const firebase = require('fire

我正在尝试复制导入脚本,以便将我的Firebase RTD数据复制到Algolia。当尝试运行脚本时,它失败并说dotenv.load不是一个函数

我的.env文件与index.js文件位于同一目录中。我尝试过移动.env文件,但是没有用。以下是index.js的开始代码:

const algoliasearch = require('algoliasearch');
const dotenv = require('dotenv');
const firebase = require('firebase');

//load values from the ./env file in this direcotry into process.env
dotenv.load();

//config firebase
firebase.initializeApp({
    databaseURL: process.env.FIREBASE_DATABASE_URL,
});

我能做什么?在需求上使用.config()也没有帮助。

基于您应该使用dotenv.config()。

要添加到@ahmad的答案中,程序包要求您使用
dotenv.config()
加载您的.env文件。另外,根据路径的位置,您可以将对象
{path:/path/传递到/your/file}
。如果您需要nodejs标准库中的
path
包来解析路径,以确保获得正确的文件路径,则可能会有所帮助。

这可能取决于.env文件的路径以及执行脚本的方式。可能要运行的firebase命令(例如,
firebase服务——仅函数
)与在路径透视图中运行
node index.js
的命令不同(如果您使用的是云函数)

换句话说,您需要确定主脚本的路径,然后确定
.env
文件与此的相对路径,并将此路径设置为
dotenv.config()

这对我很有效:

require('dotenv').config({path:'my-app/.env'});

我右键单击.env文件以获取相对路径

你能在项目目录的根目录下运行
,这样我们就可以看到你的项目树是什么样子的吗?有一个可以使用
。加载
,但根据你的
要求
它看起来不像你正在使用的。当。看起来我根据的教程已经过时了。谢谢,欢迎光临!请在发布带有代码的答案时,放置代码格式。您可以在post编辑器的工具栏中找到它。