2015-07-01 17 views

risposta

7

Provare a utilizzare attachTo() se si desidera modificare l'origine dati per un singolo modello. Per esempio

app.models.YourModel.attachTo(app.dataSources.readDS); 
readData(); 
... 
app.models.YourModel.attachTo(app.dataSources.writeDS); 
writeData(); 

Si dovrà definire readDS e writeDS origini dati nel file datasources.json:

{ 
"readDS": { 
    "host": "hostA",  
    "database": "dbOnHostA", 
    "username": "user", 
    "password": "password", 
    "name": "readDS", 
    "connector": "mysql" 
    }, 

"writeDS": { 
    "host": "hostB", 
    "database": "dbOnHostB", 
    "username": "user", 
    "password": "password", 
    "name": "writeDS", 
    "connector": "mysql" 
    } 
} 

Oppure è possibile creare le origini dati in modo dinamico.

+1

Grazie. Questo dovrebbe funzionare in quanto cambia l'origine dati del modello prima di salvare. L'unica parte di problemi è che devi sempre impostarlo prima di salvarlo o leggerlo solo per assicurarti di raggiungere il giusto datasource. In questo momento non esiste alcun modo per definire una sorgente di lettura/scrittura diversa in model-config.json. –

+0

Non ho verificato questo scenario se una chiamata REST per Create e passata a WriteDB e una chiamata REST per READ entrano. Ciò causerebbe la lettura di REST alla lettura dal DB errato? –

+1

http://stackoverflow.com/questions/5153492/models-of-concurrency-in-nodejs risponde alla mia domanda sopra. Quindi è sicuro cambiare l'allegato del database. –

-1

È possibile definire tutte le origini dati come si desidera come documentato here

Si dovrebbe quindi essere in grado di impostare il modo di controllare i dati con l'aggiunta di un ACL per controllare il tipo di accesso. In questo caso, LEGGI o SCRIVI. È possibile trovare la documentazione al riguardo here

+1

So che è possibile creare il maggior numero di origini dati in datasources.json ma posso solo collegare un'origine dati a un modello particolare in model-config.json. Ero interessato a capire come definire origini dati differenti per WRITE e READ per lo stesso modello. –

2

In loopback 2.0, è possibile provare a eseguire l'override del metodo getDataSource e, in base al contesto, è possibile restituire origini dati diverse. Tuttavia, in loopback 3.0, il contesto è stato rimosso e le opzioni non vengono passate a getDataSource, quindi sarà una sfida raggiungere la perfezione.

Problemi correlati