s4sdk - 无法连接到 NodeJS 微服务
s4sdk - Cannot connect to NodeJS microservice
我正在使用 NodeJS 微服务扩展步骤 9 中提到的教程。但是我在与后端的通信方面遇到了一些奇怪的问题。
我的流程是一个指向 HTML5 微服务(静态构建包)的 App Router,它使用 Java 或 NodeJS 微服务。 Java 部分与身份验证范围一起工作正常,但对于 NodeJS,当我调用相应路径 /node/hello 时,我总是收到 404(未找到)错误(你好应该 return 函数输出服务器)。
这是我用于路由的 xs-app.json
{
"welcomeFile": "index.html",
"authenticationMethod": "route",
"websockets": {
"enabled": true
},
"routes": [
{
"source": "/odata/v4/(.*)",
"target": "/odata/v4/",
"destination": "business-partner-api"
},
{
"source": "/",
"target": "/",
"destination": "business-partner-frontend"
},
{
"source": "/node/(.*)",
"target": "/",
"destination": "business-partner-node"
}
]
}
问题出在 /node 块上,其他块工作正常。我还注意到另一个奇怪的问题,如果我将默认目标 (/) 从业务合作伙伴前端替换为业务合作伙伴节点,应用程序路由器会成功调用节点 js 服务器并传播身份验证,因此出现问题以某种方式与 xs-app 文件相关,而不是在目标本身。
我也曾尝试将端口添加到目标并添加映射 html5 项目的静态文件但没有成功。
我在节点部分配置中可能遗漏了什么?
此致,
问题可能出在你的路由顺序上,这对路由很重要。当前路径与 source
的第一个匹配项将确定路由。在您的情况下,第二条路线的 /
匹配所有路径,包括 /node/...
.
重新排序您的路线,使节点目的地位于前端目的地之前。
我正在使用 NodeJS 微服务扩展步骤 9 中提到的教程。但是我在与后端的通信方面遇到了一些奇怪的问题。
我的流程是一个指向 HTML5 微服务(静态构建包)的 App Router,它使用 Java 或 NodeJS 微服务。 Java 部分与身份验证范围一起工作正常,但对于 NodeJS,当我调用相应路径 /node/hello 时,我总是收到 404(未找到)错误(你好应该 return 函数输出服务器)。
这是我用于路由的 xs-app.json
{
"welcomeFile": "index.html",
"authenticationMethod": "route",
"websockets": {
"enabled": true
},
"routes": [
{
"source": "/odata/v4/(.*)",
"target": "/odata/v4/",
"destination": "business-partner-api"
},
{
"source": "/",
"target": "/",
"destination": "business-partner-frontend"
},
{
"source": "/node/(.*)",
"target": "/",
"destination": "business-partner-node"
}
]
}
问题出在 /node 块上,其他块工作正常。我还注意到另一个奇怪的问题,如果我将默认目标 (/) 从业务合作伙伴前端替换为业务合作伙伴节点,应用程序路由器会成功调用节点 js 服务器并传播身份验证,因此出现问题以某种方式与 xs-app 文件相关,而不是在目标本身。
我也曾尝试将端口添加到目标并添加映射 html5 项目的静态文件但没有成功。
我在节点部分配置中可能遗漏了什么?
此致,
问题可能出在你的路由顺序上,这对路由很重要。当前路径与 source
的第一个匹配项将确定路由。在您的情况下,第二条路线的 /
匹配所有路径,包括 /node/...
.
重新排序您的路线,使节点目的地位于前端目的地之前。