Javascript 节点http代理中间件不作为targetr与本地服务器一起工作

Javascript 节点http代理中间件不作为targetr与本地服务器一起工作,javascript,node.js,proxy,http-proxy,node-http-proxy,Javascript,Node.js,Proxy,Http Proxy,Node Http Proxy,我有一个节点服务器,我正在使用http代理中间件代理api请求,类似于在中发生的情况。当我将代理服务器指向真正的生产服务器时,一切正常,但当我将代理服务器指向本地服务器时,一切都不正常 这是我的代码: app.use('/api',proxy({target:'http://localhost:9000,changeOrigin:true}) 服务器位于: http://localhost:9000/hello正在工作(我可以从浏览器访问它),但是,当我尝试从自己的服务器访问它时,如下所示: h

我有一个节点服务器,我正在使用http代理中间件代理api请求,类似于在中发生的情况。当我将代理服务器指向真正的生产服务器时,一切正常,但当我将代理服务器指向本地服务器时,一切都不正常

这是我的代码:

app.use('/api',proxy({target:'http://localhost:9000,changeOrigin:true})

服务器位于:

http://localhost:9000/hello
正在工作(我可以从浏览器访问它),但是,当我尝试从自己的服务器访问它时,如下所示:

http://localhost:3000/_api/hello

我得到:

无法获取/_api/hello


如果我用real server替换localhost:9000,一切都正常…

您的代理请求正在尝试使用原始请求路径访问本地服务器

当你要求的时候

http://localhost:3000/_api/hello

您的代理正在尝试访问

http://localhost:9000/_api/hello

\u api/hello
路径在您的
localhost:9000
上不存在,这由
无法获取/\u api/hello
错误显示

您需要重写代理请求路径以删除
\u api
部分:

app.use('/_api', proxy({
    target: 'http://localhost:9000', 
    changeOrigin: true,
    pathRewrite: {
        '^/_api' : '/'
    }
}));

prependPath参数不能做到这一点吗?@duncanhall你能帮我吗,我试图将我的请求从本地代理到qa或prd,它甚至无法识别我给出的路径,()