javascript - 如何在客户端 Javascript 中调用 Node/Express API key (.env)?

标签 javascript node.js express browserify dotenv

现在,我在客户端 JavaScript 中使用 OpenWeatherMap API key 来创建一个简单的天气应用程序 (Node/Express)。我知道这在开发之外并不理想,所以我做了 npm install dotenv。 在服务器端,我可以在 Node.js 中很好地获取和设置环境变量。当我控制台注销时我可以看到它们。

如何在客户端的 javascript 中调用 API key ?例如,目前我的天气应用程序的简单逻辑位于名为weather.js 的文件中,并且HTML 使用weather.js。

理想情况下,我只想调用我的API,例如http://api.openweathermap.org/data/2.5/forecast/daily?lat=${lat}&lon=${lon}&units=metric&appid= ${process.env.WEATHER_API_KEY}

我知道 .envs 在服务器端,你必须做一些事情才能使其在客户端工作。新的 Node 开发人员读了太多书,我认为我对 requireJS、Browserify、模块、.env 等感到困惑......

最佳答案

您不希望您的 API key (或其他 secret )被公开。在前端使用它们将使它们在检查页面和网络请求日志时可见。您需要在服务器端存储和使用您的 secret 。

在您的后端创建一条路由(您可以使用 CORS 来防止其他域使用该路由),该路由调用天气 API(使用服务器上 .env 中存储的 token )并发送返回数据。

然后让你的前端走那条路。

关于javascript - 如何在客户端 Javascript 中调用 Node/Express API key (.env)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55170002/

相关文章:

javascript - 错误 : Couldn't find any screens for the navigator. 您是否将任何屏幕定义为其子屏幕?

javascript - 下载后jquery触发点击

php - 通过 cron 或 shell_exec() 在 dreamhost 上运行 node.js 脚本

node.js - 如何在 Expressjs 中进行 Web 服务调用?

javascript - 提示文件下载

javascript - 如何在文件中写入文本/模板并将其包含到项目中

javascript - 从 express.js 中删除所有 header

javascript - 在 Node.js 服务器响应中从 MongoDB 获取和发送元素

node.js - NodeJS 获取完全渲染的 HTML 页面

express - 如何从不同的浏览器永久保持登录?