Javascript 在SAP Cloud Foundry上远程调试node.js应用程序
我们在SAP Cloud Foundry上托管了多个node.js express服务。因为我们无法进一步解决这个问题,也许其他人也面临这个问题,这里有一个明确的问题:Javascript 在SAP Cloud Foundry上远程调试node.js应用程序,javascript,typescript,sap-cloud-platform,sap-cloud-sdk,Javascript,Typescript,Sap Cloud Platform,Sap Cloud Sdk,我们在SAP Cloud Foundry上托管了多个node.js express服务。因为我们无法进一步解决这个问题,也许其他人也面临这个问题,这里有一个明确的问题: 如何远程调试托管在SAP Cloud Foundry上的node.js应用程序(我们自己的应用程序) 在我们的案例中,我们有一个express service,它使用SAP Cloud SDK(v1.6.1)从SAP Cloud和OnPremise提供各种数据。我不确定这是否是最好的方法,但它对我有效,因此: 首先,您需要在ma
如何远程调试托管在SAP Cloud Foundry上的node.js应用程序(我们自己的应用程序)
在我们的案例中,我们有一个express service,它使用SAP Cloud SDK(v1.6.1)从SAP Cloud和OnPremise提供各种数据。我不确定这是否是最好的方法,但它对我有效,因此: 首先,您需要在manifest.yml中调整应用程序的start
命令
,以便能够附加调试器。例如:
command: node --inspect --require ts-node/register src/index.ts
在本例中,我使用的是TypeScript,如果您使用的是纯JS,它可能会如下所示:
command: node --inspect src/index.js
接下来,为了能够将调试器连接到检查器,您需要打开应用程序的ssh隧道,如下所示:
command: node --inspect src/index.js
cf ssh-N-T-L 9229:127.0.0.1:9229
这将通过隧道将本地计算机的端口9229连接到运行应用程序的容器上的端口9229(9229是inspector运行的默认端口)
最后,(我假设您在这里使用VS代码),您需要启动调试器。以下是我为此使用的配置:
{
"type": "node",
"request": "attach",
"name": "Attach to Remote",
"address": "localhost",
"port": 9229,
"localRoot": "${workspaceFolder}",
"remoteRoot": "/home/vcap/app"
}
这种方法的缺点是(与调试Java应用程序相比),现在有了连接到正在运行的应用程序的方法,因为您需要使用
--inspect
启动应用程序(对于生产性应用程序,默认情况下您可能不希望这样做)。我还没有找到解决这个问题的办法。因此,如果您已经在高效运行,您可能需要单独部署。看起来不错!我想添加一些步骤(可能已经完成了):1)为您的共享空间启用ssh:cf allow space ssh[spacename]2)cf enable ssh[yourapp]3)重新启动您的应用程序,以便前面的命令生效