首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SAP Cloud Foundry上远程调试node.js应用程序

在SAP Cloud Foundry上远程调试node.js应用程序
EN

Stack Overflow用户
提问于 2019-07-24 20:30:38
回答 1查看 721关注 0票数 2

我们已经在SAP Cloud Foundry上托管了几个node.js express服务。由于我们不能进一步解决这个问题,也许其他人也面临着this问题,下面是关于这个问题的明确问题:

如何远程调试托管在SAP Cloud Foundry上的node.js应用程序(我们自己的)?

在我们的案例中,我们有一个express服务,它使用SAP Cloud SDK (v1.6.1)来提供来自SAP Cloud和OnPremise的各种数据。

EN

回答 1

Stack Overflow用户

发布于 2019-07-24 21:03:11

我不确定这是否是最好的方法,但它对我来说是有效的,所以这里是:

首先,您需要在manifest.yml中调整应用程序的启动command,以便能够附加调试器。例如:

代码语言:javascript
复制
command: node --inspect --require ts-node/register src/index.ts

在这个例子中,我使用的是TypeScript,如果你使用的是普通的JS,它可能看起来像这样:

代码语言:javascript
复制
command: node --inspect src/index.js

接下来,为了能够将调试器附加到检查器,您需要打开一个到您的应用程序的ssh隧道,如下所示:

代码语言:javascript
复制
cf ssh <APP_NAME> -N -T -L 9229:127.0.0.1:9229

这将把本地机器的端口9229隧道到运行应用程序的容器上的端口9229 (9229是运行检查器的默认端口)。

最后,(我假设您在这里使用VS代码),您需要启动调试器。下面是我使用的配置:

代码语言:javascript
复制
{
  "type": "node",
  "request": "attach",
  "name": "Attach to Remote",
  "address": "localhost",
  "port": 9229,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "/home/vcap/app"
}

这种方法的缺点是(与调试Java应用程序相比)现在可以附加到正在运行的应用程序,因为您需要使用--inspect启动(对于一个高效的应用程序,您可能不希望默认这么做)。我还没有找到解决这个问题的办法。因此,您可能希望有一个单独的部署,以防您已经在高效运行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57183017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档