具有Express Gateway的微服务:路由返回404错误

时间:2018-09-10 10:53:36

标签: node.js express microservices express-gateway

我的微服务正在端口3000中运行,我正在尝试通过express-js gateway代理请求

但是我在微服务中访问路由时遇到了问题

微服务路线

app.use('/sample',(req,res)=>{
   res.json({
     message:'Run with microservice'
   })
})

我可以访问此路由http://localhost:3000/sample

这是我的gateway.config.yml

http:
  port: 3004
admin:
  port: 9876
  hostname: localhost
apiEndpoints:
  test:
    host: localhost
    paths: '/test'
serviceEndpoints:
  test:
    url: 'http://localhost:3002/'  
policies:
  - basic-auth
  - cors
  - expression
  - key-auth
  - log
  - oauth2
  - proxy
  - rate-limit
pipelines: 
  test:
    apiEndpoints:
      - test
    policies:
      - proxy:
          - action:
              serviceEndpoint: test
              changeOrigin: true              

当我尝试通过http://localhost:3004/test/sample访问微服务路由时,返回cannot get route error

3 个答案:

答案 0 :(得分:0)

通常,请确保查看我们的Path Management Piece。这将帮助您了解转发到您的服务的PATH是什么。

专门讨论您的问题-如果您想转发一条可以“继续”超出规范的路径,则需要将路径定义从/test更改为/test*。这会指示网关路径不完整,并且可能会提供其他内容。

此外,在服务方面,我将app.use更改为app.get,以便您只收听您感兴趣的VERBS。

干杯!

答案 1 :(得分:-1)

您必须加入Express-Microservice。

这样的事情。

 app.get('/test',(req,res)=>{
       res.json({
         message:'Run with microservice'
       })
    })

答案 2 :(得分:-1)

我会选择Janus-https://hellofresh.gitbooks.io/janus/来进行API网关管理,因为它专门针对此问题。看看,让我知道你的想法。