gpt4 book ai didi

proxy - 带有多个代理的 Ember CLI

转载 作者:行者123 更新时间:2023-12-04 08:06:54 25 4
gpt4 key购买 nike

问题:

我有一个 Ember CLI 应用程序,它将使用多个 API,我需要在开发模式下代理到这些 API。

背景:

我有一个遗留 api,它在 /api 公开服务在我的本地开发机器上运行 localhost:3000
我有一个新的 api,它在 /myapp/api/v1 公开服务.这些服务是最近从遗留应用程序中提取的,包含了 ember 应用程序使用的大部分应用程序服务。

ember 应用程序使用 /myapp 的 baseURL ,因为它正在部署到子目录。

我使用 ember generate http-proxy 生成了两个 http 代理.它们位于 /server/proxies/api.jsserver/proxies/myapp/api/v1.js
api.js

var proxyPath = '/api';
module.exports = function(app) {
var proxy = require('http-proxy').createProxyServer({});
proxy.on('error', function(err, req) {
console.error(err, req.url);
});
app.use(proxyPath, function(req, res, next){
// include root path in proxied request
req.url = proxyPath + '/' + req.url;
proxy.web(req, res, { target: 'http://localhost:3000' });
});
};

myapp/api/v1.js
var proxyPath = 'myapp/api/v1';
module.exports = function(app) {
var proxy = require('http-proxy').createProxyServer({});
proxy.on('error', function(err, req) {
console.error(err, req.url);
});
app.use(proxyPath, function(req, res, next){
req.url = proxyPath + '/' + req.url;
proxy.web(req, res, { target: 'http://localhost:4100' });
});
};

第一个代理到/api 似乎可以正常工作,第二个 API 到/myapp/api/v1/whatever 失败。

它似乎没有被使用或考虑。当我运行时,例如对 myapp/api/v1/sessions 的 POST,它只是说不能 POST。当我将调试器放在 proxy.on 和 app.use 函数上时,它们永远不会被命中。

我哪里出错了?

最佳答案

var proxyPath = 'myapp/api/v1';

您缺少一个 /在字符串的开头;)

关于proxy - 带有多个代理的 Ember CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30267849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com