2015-04-23 35 views
6

Chciałbym wdrożyć wielowątkowość w mojej aplikacji loopback. Obecnie próbuję użyć oprogramowania pośredniego do przedefiniowania moich źródeł danych, aby wskazać różne bazy danych na moim serwerze mongodb dla każdego żądania, w oparciu o domenę, której dotyczy żądanie. Kod działa, ale wygląda na to, że nie zmienia on źródła danych. Zamiast tego zawsze korzysta z tego zdefiniowanego w moim pliku datasources.json.Zamiana bazy danych wielopoziomowej wymiany danych

Właśnie to robię. Wszystkie moje modele odwołują się do "my_db" i chciałbym mieć jedną bazę danych na moim serwerze mongo dla każdego dzierżawcy.

var dataSourceObj = { 
     my_db:{ 
      url: process.env.MONGOLAB_URI, 
      connector: "mongodb", 
      name: "my_db", 
      database: tenant 
     } 
     } 

     Object.keys(dataSourceObj).forEach(function(dataSource) { 

     app.dataSources[dataSource].adapter.settings = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].adapter.clientConfig = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].settings = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].connector.settings = dataSourceObj[dataSource]; 
     app.dataSources[dataSource].connector.clientConfig = dataSourceObj[dataSource]; 

     }); 

Czy ktoś ma jakieś pomysły? Czy to głupi sposób na multi-najem?

Dzięki!

+1

Co to jest 'lokator' w powyższym kodzie? – jakerella

+0

Czy kiedykolwiek znalazłeś rozwiązanie? –

Odpowiedz

1

Wykonuję ten projekt. Nie mam alternatywy.

https://github.com/paulomcnally/loopback-example-multitenant

+0

Paulo Przetestowałem Twój projekt w następujący sposób: 'curl - data "username = paulomcnally1 & message = Hello world" http://127.0.0.1:4000/demo1/tweets & curl --data "username = paulomcnally2 & message = Hello world" http : //127.0.0.1: 4000/demo2/tweets & '. Oba tweety zapisywane w bazie danych demo2. Czy jest jakiś problem ze współbieżnością lub robię coś nie tak? – Musma