Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie
Database is een belangrijk onderdeel van gegevensbronnen (DataSource) van het type database. Elke gegevensbron van het type database heeft een corresponderende Database-instantie, die u kunt benaderen via dataSource.db. De database-instantie van de hoofdgegevensbron biedt ook het handige alias app.db. Het is essentieel om bekend te zijn met de veelgebruikte methoden van db voor het schrijven van server-side plugins.
Een typische Database bestaat uit de volgende onderdelen:
beforeLoad-faseIn deze fase zijn databasebewerkingen niet toegestaan. Deze fase is geschikt voor het registreren van statische klassen of het luisteren naar gebeurtenissen.
db.registerFieldTypes() — Aangepaste veldtypendb.registerModels() — Aangepaste modelklassen registrerendb.registerRepositories() — Aangepaste repositoryklassen registrerendb.registerOperators() — Aangepaste filteroperatoren registrerendb.on() — Luisteren naar databasegerelateerde gebeurtenissenload-faseIn deze fase zijn alle voorgaande klassedefinities en gebeurtenissen geladen, zodat het laden van datatabellen geen ontbrekende of overgeslagen afhankelijkheden zal hebben.
db.defineCollection() — Nieuwe datatabellen definiërendb.extendCollection() — Bestaande datatabelconfiguraties uitbreidenAls u ingebouwde tabellen voor een plugin definieert, is het aan te raden deze in de map ./src/server/collections te plaatsen. Zie Collecties.
Database biedt twee belangrijke manieren om gegevens te benaderen en te bewerken:
De Repository-laag wordt meestal gebruikt om bedrijfslogica te encapsuleren, zoals paginering, filtering, toegangscontroles, enz.
De Model-laag komt direct overeen met ORM-entiteiten en is geschikt voor het uitvoeren van databasebewerkingen op een lager niveau.
| Fase | Databasebewerkingen toegestaan |
|---|---|
staticImport | Nee |
afterAdd | Nee |
beforeLoad | Nee |
load | Nee |
install | Ja |
beforeEnable | Ja |
afterEnable | Ja |
beforeDisable | Ja |
afterDisable | Ja |
remove | Ja |
handleSyncMessage | Ja |
| Fase | Databasebewerkingen toegestaan |
|---|---|
beforeLoad | Nee |
afterLoad | Nee |
beforeStart | Ja |
afterStart | Ja |
beforeInstall | Nee |
afterInstall | Ja |
beforeStop | Ja |
afterStop | Nee |
beforeDestroy | Ja |
afterDestroy | Nee |
beforeLoadPlugin | Nee |
afterLoadPlugin | Nee |
beforeEnablePlugin | Ja |
afterEnablePlugin | Ja |
beforeDisablePlugin | Ja |
afterDisablePlugin | Ja |
afterUpgrade | Ja |
| Fase | Databasebewerkingen toegestaan |
|---|---|
beforeSync | Nee |
afterSync | Ja |
beforeValidate | Ja |
afterValidate | Ja |
beforeCreate | Ja |
afterCreate | Ja |
beforeUpdate | Ja |
afterUpdate | Ja |
beforeSave | Ja |
afterSave | Ja |
beforeDestroy | Ja |
afterDestroy | Ja |
afterCreateWithAssociations | Ja |
afterUpdateWithAssociations | Ja |
afterSaveWithAssociations | Ja |
beforeDefineCollection | Nee |
afterDefineCollection | Nee |
beforeRemoveCollection | Nee |
afterRemoveCollection | Nee |