Das Problem:Ember CLI mit mehreren Proxies
ich eine Ember CLI-Anwendung, die mehr APIs verbrauchen, die ich in dem Modus in der Entwicklung Proxy benötigen.
Hintergrund:
ich ein Vermächtnis api haben die
beilocalhost:3000
Dienste bei
/api
läuft auf meinem lokalen Entwicklungsmaschine macht
Ich habe eine neue api, die Dienstleistungen bei /myapp/api/v1
aussetzt. Diese Dienste wurden kürzlich aus der Legacy-App extrahiert und umfassen die Mehrzahl der Anwendungsdienste, die von der Ember-App verwendet werden.
Die Ember-App verwendet die baseURL von /myapp
, da sie in einem Unterverzeichnis bereitgestellt wird.
Ich erzeugte zwei http-proxys unter Verwendung ember generate http-proxy
. Sie befinden sich an /server/proxies/api.js
und 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' });
});
};
MeineAnw/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' });
});
};
der erste Proxy, zu/api, scheint zu funktionieren, wobei die zweite API, nach/myapp/api/v1/was auch immer scheitert.
Es scheint nicht verwendet oder in Betracht gezogen zu werden. Wenn ich zum Beispiel einen POST zu myapp/api/v1/sessions ausführe, heißt es einfach nicht POST. Wenn ich den Debugger auf die Funktionen proxy.on und app.use setze, werden sie nie getroffen.
Wohin gehe ich hier falsch?
FYI, ich habe die Prämie nicht veröffentlichen, so dass es dann sein, bis es auf die Vergabe @Asherlc :) – DVG