首页 > 解决方案 > VueJS 应用程序中的 Cloud Foundry VCAP_SERVICES

问题描述

我正在编写 VueJS Web 应用程序并部署到 Pivotal Cloud Foundry。我想从用户提供的 VCAP_SERVICES 中读取配置。

我尝试了两种方法来做到这一点。

  1. 使用 cfenv 库:但是当我这样做时,我得到Uncaught TypeError: Arguments to path.join must be stringsvar cfenv = require('cfenv')
  2. 然后我尝试了手动方法来做到这一点let vcap_services = JSON.parse(process.env.VCAP_SERVICES),在这个我得到 VCAP_SERVICES 未定义。

任何人都可以请帮助或建议一些东西。

标签: node.jsvue.jscloud-foundry

解决方案


您无法VCAP_SERVICES在客户端的浏览器中查看,这是您的 Vue.js 应用程序正在运行的位置。这是因为VCAP_SERVICES在托管应用程序的服务器端设置了环境变量。

如果您希望它在客户端可用,则需要以某种方式公开它。要么在提供给客户端浏览器的文件中对其进行编码,要么进行 API 调用并从您的服务器请求它。

也就是说,其中的信息通常VCAP_SERVICES是敏感的(包含密码和机密),因此您需要非常小心发送给客户端/浏览器的内容。您发送到客户端/浏览器的任何内容都将对客户端/浏览器及其人类用户可见。简而言之,通过浏览器使用您的应用程序的人也可以看到该信息,例如通过浏览器开发工具。


推荐阅读