Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么我会得到Can';t从VCAP_应用程序-本地nodeJS服务器获取应用程序id_Node.js_Ibm Cloud - Fatal编程技术网

Node.js 为什么我会得到Can';t从VCAP_应用程序-本地nodeJS服务器获取应用程序id

Node.js 为什么我会得到Can';t从VCAP_应用程序-本地nodeJS服务器获取应用程序id,node.js,ibm-cloud,Node.js,Ibm Cloud,我创建了一个带有“移动客户端访问”服务的Bluemix nodeJS应用程序。该应用程序在Bluemix中运行得非常完美,但是当我将代码下载到笔记本电脑后尝试在本地运行时,它无法加载。看起来它需要访问某个env变量,该变量仅在Bluemix中可用,在我的本地环境中不可用。我是否必须创建某种环境文件才能在本地运行它?谢谢你的帮助 导致错误的代码: var ImfBackendStrategy = require('passport-imf-token-validation').ImfBackend

我创建了一个带有“移动客户端访问”服务的Bluemix nodeJS应用程序。该应用程序在Bluemix中运行得非常完美,但是当我将代码下载到笔记本电脑后尝试在本地运行时,它无法加载。看起来它需要访问某个env变量,该变量仅在Bluemix中可用,在我的本地环境中不可用。我是否必须创建某种环境文件才能在本地运行它?谢谢你的帮助

导致错误的代码:

var ImfBackendStrategy = require('passport-imf-token-validation').ImfBackendStrategy;
var imf = require('imf-oauth-user-sdk');
passport.use(new ImfBackendStrategy());
[ERROR] Can't get the application_id from VCAP_APPLICATION, please check if the application running on bluemix.
/Users/xxx/git/DigitalAgent/node_modules/passport-imf-token-validation/lib/imf-backend-strategy.js:31
    throw new TypeError(msg);
          ^
TypeError: Can't get the application_id from VCAP_APPLICATION, please check if the application running on bluemix.
at new Strategy (/Users/xxx/git/DigitalAgent/node_modules/passport-imf-token-validation/lib/imf-backend-strategy.js:31:9)
at Object.<anonymous> (/Users/xxx/git/DigitalAgent/app.js:14:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
以下是错误:

var ImfBackendStrategy = require('passport-imf-token-validation').ImfBackendStrategy;
var imf = require('imf-oauth-user-sdk');
passport.use(new ImfBackendStrategy());
[ERROR] Can't get the application_id from VCAP_APPLICATION, please check if the application running on bluemix.
/Users/xxx/git/DigitalAgent/node_modules/passport-imf-token-validation/lib/imf-backend-strategy.js:31
    throw new TypeError(msg);
          ^
TypeError: Can't get the application_id from VCAP_APPLICATION, please check if the application running on bluemix.
at new Strategy (/Users/xxx/git/DigitalAgent/node_modules/passport-imf-token-validation/lib/imf-backend-strategy.js:31:9)
at Object.<anonymous> (/Users/xxx/git/DigitalAgent/app.js:14:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
[错误]无法从VCAP应用程序获取应用程序id,请检查应用程序是否在bluemix上运行。
/Users/xxx/git/DigitalAgent/node_modules/passport-imf-token-validation/lib/imf-backend-strategy.js:31
抛出新类型错误(msg);
^
TypeError:无法从VCAP_应用程序获取应用程序_id,请检查应用程序是否在bluemix上运行。
在新策略中(/Users/xxx/git/DigitalAgent/node_modules/passport-imf-token-validation/lib/imf-backend-Strategy.js:31:9)
反对。(/Users/xxx/git/DigitalAgent/app.js:14:14)
在模块处编译(Module.js:460:26)
在Object.Module.\u extensions..js(Module.js:478:10)
在Module.load(Module.js:355:32)
在Function.Module.\u加载(Module.js:310:12)
位于Function.Module.runMain(Module.js:501:10)
启动时(node.js:129:16)
在node.js:814:3

您必须在本地计算机上设置环境变量。您可以在Bluemix上看到变量环境,单击仪表板控制台左侧菜单上的“environment Variables”(环境变量)。

我在使用Bluemix启动程序代码时遇到了相同的问题,我在
/server/server.js
中的下一行进行了注释,它开始工作

//passport.use(new MCABackendStrategy())

您可以访问VCAP变量并在Bluemix仪表板中的计算机上重新创建它们(单击应用程序的磁贴并查找“环境变量”)。否则,在Bluemix上运行它将是您唯一的选择。