首页 > 解决方案 > s4sdk - 无法连接到 NodeJS 微服务

问题描述

我正在使用 NodeJS 微服务扩展第 9 步中提到的教程。但是,我在与后端的通信方面遇到了一些奇怪的问题。

我的流程是一个指向 HTML5 微服务(静态构建包)的 App Router,它使用 Java 或 NodeJS 微服务。Java 部分与身份验证范围一起工作正常,但是对于 NodeJS,当我调用相应的路径 /node/hello 时,我总是收到 404(未找到)错误(hello 应该从服务器返回一个函数输出)。

这是我用于路由的 xs-app.json

{
  "welcomeFile": "index.html",
  "authenticationMethod": "route",
  "websockets": {
    "enabled": true
  },
  "routes": [
    {
      "source": "/odata/v4/(.*)",
      "target": "/odata/v4/$1",
      "destination": "business-partner-api"
    },
    {
      "source": "/",
      "target": "/",
      "destination": "business-partner-frontend"
    },
    {
      "source": "/node/(.*)",
      "target": "/$1",
      "destination": "business-partner-node"
    }
  ]
}

问题出在 /node 块上,其他的工作正常。我还注意到另一个奇怪的问题,如果我将默认目标 (/) 从业务合作伙伴前端替换为业务合作伙伴节点,则应用程序路由器成功调用节点 js 服务器并传播身份验证,因此出现问题以某种方式与 xs-app 文件相关,而不是与目标本身相关。

我也尝试将端口添加到目的地并添加映射html5项目的静态文件但没有成功,但没有成功。

节点部分配置中可能缺少什么?

此致,

标签: s4sdk

解决方案


问题可能在于您的路线顺序,这对路线很重要。当前路径的第一个匹配项source将确定路由。在您的情况下,/第二条路线的 匹配所有路径,包括/node/....

重新排序您的路线,以便节点目的地位于前端目的地之前。


推荐阅读