问题:
我有一个Ember CLI应用程序,它将使用多个API,我需要在开发模式下代理它们.
背景:
我有一个遗留的api,它暴露/api了我在本地开发机器上运行的服务localhost:3000
我有一个新的api暴露了服务/myapp/api/v1.这些服务最近从遗留应用程序中提取,并包含ember应用程序使用的大多数应用程序服务.
ember应用程序使用baseURL /myapp,因为它被部署到子目录.
我使用生成了两个http-proxys ember generate http-proxy.他们位于/server/proxies/api.js和server/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' });
});
};
Run Code Online (Sandbox Code Playgroud)
的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' });
});
};
Run Code Online (Sandbox Code Playgroud)
/ api的第一个代理似乎正在工作,第二个API,/ myapp/api/v1 /无论什么都失败了.
它似乎没有被使用或考虑.当我运行时,例如POST到myapp/api/v1/sessions,它只是说不能POST.当我将调试器放在proxy.on和app.use函数上时,它们永远不会被命中.
我在哪里错了?
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |