我正在尝试复制导入脚本,以将我的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()也无济于事。
答案 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文件以获取相对路径。