2015-04-08 21 views
5

Utilizzo di Loopback per creare un'API. La documentazione è generalmente molto buona, ma in realtà non risponde alla mia domanda su quanto segue: come faccio a estendere (non sostituire) un modello integrato?Loopback - Il modo più semplice per estendere un modello integrato

L'informazione più promettente proviene da this page - specifica il modo di basare una classe da un'altra classe, via ereditarietà. Questo è utile ma non ideale: mi piacerebbe creare relazioni con modelli personalizzati dai modelli di serie, ad esempio: "Ruolo" dovrebbe avere molti "Permessi".

La pagina che menziono mostra anche un file Javascript, situato a common/models/<modelName>.js, in cui si afferma che è possibile "estendere" un modello in base alle proprietà e alle opzioni fornite. Il server non sembra mai a colpire il file ... Per esempio - ho messo un file in common/models/role.js con il seguente contenuto:

var properties = { 
    exampleProperty: {type: String, required: true} 
}; 


var user = loopback.Model.extend('Role', properties); 
console.log('test'); 

Prima di tutto, non sembra colpire il file a tutti (senza console.log uscita dato). In secondo luogo, ovviamente a causa del primo punto, non estende il modello con le proprietà che ho creato.

Mi manca qualcosa di ovvio o la documentazione è semplicemente sbagliata?

+1

stesso problema qui. i documenti sembrano piuttosto incompleti quando spiegano come estendere i modelli incorporati - sembrano suggerire che puoi estenderli, ma come te, ho trovato che, ad esempio, user.json/.js non è un'opzione. hai provato l'ereditarietà come suggerito qui? sono preoccupato che romperà i token di accesso o in genere causerà più problemi. –

+0

Ciao, sì, l'eredità è la strada da percorrere. Se estendete la classe 'User' di base, riceverete gli stessi metodi e in qualche modo si scopre anche il roba accessToken per voi. – freshnode

risposta

3

È necessario generare un nuovo modello tramite slc loopback:model denominato user. Per impostazione predefinita, l'utente incorporato è denominato User, motivo per cui è possibile utilizzare il minuscolo user o anche UserModel se si preferisce. Quindi, quando viene richiesto dal generatore di modelli per un modello di base, scegliere User. Vedi https://github.com/strongloop/loopback-faq-user-management/blob/master/common/models/user.json#L3

+0

Grazie, immagino che la documentazione sia un po 'fuorviante. Volevo aggiungere nuove proprietà e relazioni ai modelli originali, ma immagino che questo non sia il modo migliore. – freshnode

+0

Sì, estendere il modello integrato e aggiungere le proprietà e le relazioni è sicuramente il modo migliore. – superkhau

Problemi correlati