Questa documentazione è stata tradotta automaticamente dall'IA.
Database è un componente fondamentale delle fonte dati di tipo database. Ogni fonte dati di tipo database possiede un'istanza Database corrispondente, accessibile tramite dataSource.db. L'istanza Database della fonte dati principale offre anche l'alias app.db per comodità. Familiarizzare con i metodi comuni di db è fondamentale per scrivere i plugin lato server.
Un Database tipico è composto dalle seguenti parti:
beforeLoadIn questa fase, le operazioni sul database non sono consentite. È adatta per la registrazione di classi statiche o l'ascolto di eventi.
db.registerFieldTypes() — Tipi di campo personalizzatidb.registerModels() — Registrare classi di modelli personalizzatedb.registerRepositories() — Registrare classi di repository personalizzatedb.registerOperators() — Registrare operatori di filtro personalizzatidb.on() — Ascoltare eventi relativi al databaseloadIn questa fase, tutte le definizioni di classi ed eventi precedenti sono già stati caricati, quindi il caricamento delle tabelle di dati non presenterà mancanze o omissioni.
db.defineCollection() — Definire nuove tabelle di datidb.extendCollection() — Estendere configurazioni di tabelle di dati esistentiSe si tratta di definire tabelle integrate per i plugin, è più consigliabile posizionarle nella directory ./src/server/collections. Per maggiori dettagli, consulti Collezioni.
Il Database offre due modi principali per accedere e operare sui dati:
Lo strato del Repository è solitamente utilizzato per incapsulare la logica di business, come la paginazione, il filtraggio, i controlli di autorizzazione, ecc.
Lo strato del Model corrisponde direttamente alle entità ORM ed è adatto per eseguire operazioni sul database di livello inferiore.
| Fase | Operazioni sul database consentite |
|---|---|
staticImport | No |
afterAdd | No |
beforeLoad | No |
load | No |
install | Sì |
beforeEnable | Sì |
afterEnable | Sì |
beforeDisable | Sì |
afterDisable | Sì |
remove | Sì |
handleSyncMessage | Sì |
| Fase | Operazioni sul database consentite |
|---|---|
beforeLoad | No |
afterLoad | No |
beforeStart | Sì |
afterStart | Sì |
beforeInstall | No |
afterInstall | Sì |
beforeStop | Sì |
afterStop | No |
beforeDestroy | Sì |
afterDestroy | No |
beforeLoadPlugin | No |
afterLoadPlugin | No |
beforeEnablePlugin | Sì |
afterEnablePlugin | Sì |
beforeDisablePlugin | Sì |
afterDisablePlugin | Sì |
afterUpgrade | Sì |
| Fase | Operazioni sul database consentite |
|---|---|
beforeSync | No |
afterSync | Sì |
beforeValidate | Sì |
afterValidate | Sì |
beforeCreate | Sì |
afterCreate | Sì |
beforeUpdate | Sì |
afterUpdate | Sì |
beforeSave | Sì |
afterSave | Sì |
beforeDestroy | Sì |
afterDestroy | Sì |
afterCreateWithAssociations | Sì |
afterUpdateWithAssociations | Sì |
afterSaveWithAssociations | Sì |
beforeDefineCollection | No |
afterDefineCollection | No |
beforeRemoveCollection | No |
afterRemoveCollection | No |