Express 如何使用app.all将请求路径发送到其他域?

Express 如何使用app.all将请求路径发送到其他域?,express,Express,在我当前的环境中,这是可行的: router.get("/test", function(req,res,next){ request({ uri: 'http://my_virtual_machine:8080/rest/stuff/test', }).pipe(res) }) 当我向http://localhost:3000/test我从http://my_virtual_machine:8080/rest/stuff/test/。但是,我不想重写每一个ap

在我当前的环境中,这是可行的:

router.get("/test", function(req,res,next){
    request({
        uri: 'http://my_virtual_machine:8080/rest/stuff/test',
    }).pipe(res)
})
当我向
http://localhost:3000/test
我从
http://my_virtual_machine:8080/rest/stuff/test/
。但是,我不想重写每一个api

是否有一种方法可以简单地将
req.path
传递到VM?

我试过这个:

router.all("*", function(req,res,next){
    request({
        uri: 'http://my_virtual_machine:8080/' + req.path,
    }).pipe(res)
})
但是当我请求
http://localhost:3000/test
我收到了这个错误-

GEThttp://localhost:3000/test 404(未找到)


此外,我必须发送所有HTTP命令(GET、POST、PUT等),这就是为什么我要使用
all
,因为据我所知
all
“匹配所有HTTP动词”[]。

我将
router.all
更改为
router.use
,并删除了路径参数。这就是成功的原因:

router.use(function(req,res,next){
    request({
        uri: 'http://my_virtual_machine:8080' + req.path,
    }).pipe(res)
})
感谢@yBrodosky的评论,这将我引向了正确的方向。阅读后,我发现当它没有path参数时,它适用于所有URL。由于我严格地将其用作VM访问的管道(以便应用访问控制头),所以我必须这样做。

router.use(“/:path”等