尝试运行Node脚本时“ dotenv.load()不是函数”

时间:2019-03-21 00:06:01

标签: node.js

我正在尝试复制导入脚本,以将我的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()也无济于事。

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

也许这取决于.env文件的路径,也取决于您执行脚本的方式。可能要运行的firebase命令(例如firebase serve --only functions)与在路径透视图中运行node index.js的命令(如果您使用的是云功能)有所不同。

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

答案 3 :(得分:0)

这对我有用:

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

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