2015-05-15 22 views
8

problem:Ember CLI z pełnomocnictw wielokrotnych

Mam aplikacji CLI Ember że pochłonie wiele interfejsów API, które muszą pełnomocnika w trybie rozwoju.

Tło:

Mam starszego API, które odsłania usług na /api działa na moim komputerze lokalnym rozwoju na localhost:3000

mam nowego API, które odsłania usług na /myapp/api/v1. Usługi te zostały niedawno wyodrębnione ze starszej aplikacji i obejmują większość usług aplikacji używanych przez aplikację ember.

Aplikacja ember wykorzystuje bazę danych o numerze /myapp, ponieważ jest wdrażana w podkatalogu.

Wygenerowałem dwa proksy http za pomocą ember generate http-proxy. Znajdują się one na /server/proxies/api.js i 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' }); 
    }); 
}; 

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' }); 
    }); 
}; 

Pierwszy proxy, aby/API, wydaje się działać, drugi API, to/myapp/api/v1/cokolwiek zawiedzie.

Nie wydaje się być używane lub rozważone. Po uruchomieniu, na przykład POST do myapp/api/v1/sessions, po prostu nie można POST. Kiedy umieszczam debugger na funkcjach proxy.on i app.use, nigdy nie zostaną one trafione.

Gdzie ja się tu mylę?

Odpowiedz

6
var proxyPath = 'myapp/api/v1'; 

Teraz brakuje / na początku łańcucha;)

+1

FYI, nie dodawać nagrodę, więc to będzie aż do @Asherlc przyznać jej :) – DVG