我正在使用Meteor包dotenv: https://github.com/okgrow/meteor-dotenv为我的API密钥添加安全性根据指示,我:1. 创建了一个名为"。"羡慕"在我的根2. 在文件中以"THIS_KEY=BLAH12345"的样式输入了两个键3.创建一个流星调用函数,返回process.env。客户端使用的THIS_KEY。
我得到了Referenceerror: process。Env没有定义。对于普通节点来说,有很多答案,但对于流星来说就不是这样了。我的文件命名错了吗?需要使用流星命令来激活某些东西?
我遇到了同样的问题,并通过将
var secretThing = process.env.SECRET_THING
服务器端,在if (Meteor.isServer)中,然后将变量作为参数传递给需要使用秘密内容的方法。
Meteor.call("apiCall", secretThing);
那么接收方法看起来像这样:
apiCall: function (secretThing) {
console.log(secretThing);
}
DotEnv用于从.env文件中读取环境变量,该文件通常位于NodeJS应用程序的根目录中。
DotEnv只是通过process.env
问题是,我不相信meteor支持。env文件。这可能是由于应用程序的年龄。我个人认为他们应该优先解决这个问题。
在流星应用程序中使用process.env
的唯一方法是设置要在主机系统上使用的变量。如果你使用的是linux,它会像
export DB_PASSWORD=12345
您应该能够使用process。
当你的应用程序正在运行时读取DB_PASSWORD。// You can only run process.env in server code
if (Meteor.isServer) {
const myDBPassword = process.env.DB_PASSWORD
}