Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie
Beheerklasse voor collectievelden (abstracte klasse). Het is tevens de basisklasse voor alle veldtypen. Elk ander veldtype wordt geïmplementeerd door deze klasse te erven.
Voor informatie over het aanpassen van velden, zie [Veldtypen uitbreiden]
Ontwikkelaars roepen deze doorgaans niet direct aan, maar voornamelijk via de db.collection({ fields: [] })-methode als proxy-ingang.
Bij het uitbreiden van een veld wordt dit voornamelijk geïmplementeerd door de abstracte klasse Field te erven en deze vervolgens te registreren in de Database-instantie.
Handtekening
constructor(options: FieldOptions, context: FieldContext)Parameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
options | FieldOptions | - | Veldconfiguratieobject |
options.name | string | - | Veldnaam |
options.type | string | - | Veldtype, overeenkomend met de naam van het veldtype dat in de db is geregistreerd |
context | FieldContext | - | Veldcontextobject |
context.database | Database | - | Database-instantie |
context.collection | Collection | - | Collectie-instantie |
nameVeldnaam.
typeVeldtype.
dataTypeDatabase-opslagtype van het veld.
optionsInitialisatieconfiguratieparameters van het veld.
contextVeldcontextobject.
on()Een verkorte definitiemethode gebaseerd op collectie-events. Gelijk aan db.on(this.collection.name + '.' + eventName, listener).
Het is doorgaans niet nodig om deze methode te overschrijven bij het erven.
Handtekening
on(eventName: string, listener: (...args: any[]) => void)Parameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
eventName | string | - | Eventnaam |
listener | (...args: any[]) => void | - | Eventlistener |
off()Een verkorte verwijderingsmethode gebaseerd op collectie-events. Gelijk aan db.off(this.collection.name + '.' + eventName, listener).
Het is doorgaans niet nodig om deze methode te overschrijven bij het erven.
Handtekening
off(eventName: string, listener: (...args: any[]) => void)Parameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
eventName | string | - | Eventnaam |
listener | (...args: any[]) => void | - | Eventlistener |
bind()De inhoud die wordt uitgevoerd wanneer een veld aan een collectie wordt toegevoegd. Dit wordt doorgaans gebruikt om eventlisteners voor collecties en andere verwerkingen toe te voegen.
Bij het erven moet u eerst de corresponderende super.bind()-methode aanroepen.
Handtekening
bind()unbind()De inhoud die wordt uitgevoerd wanneer een veld uit een collectie wordt verwijderd. Dit wordt doorgaans gebruikt om eventlisteners voor collecties en andere verwerkingen te verwijderen.
Bij het erven moet u eerst de corresponderende super.unbind()-methode aanroepen.
Handtekening
unbind()get()Haalt de waarde van een configuratie-item van een veld op.
Handtekening
get(key: string): anyParameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
key | string | - | Naam van het configuratie-item |
Voorbeeld
merge()Voegt de waarden van de configuratie-items van een veld samen.
Handtekening
merge(options: { [key: string]: any }): voidParameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
options | { [key: string]: any } | - | Het configuratie-itemobject dat moet worden samengevoegd |
Voorbeeld
remove()Verwijdert het veld uit de collectie (alleen uit het geheugen).
Voorbeeld
removeFromDb()Verwijdert het veld uit de database.
Handtekening
removeFromDb(options?: Transactionable): Promise<void>Parameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
options.transaction? | Transaction | - | Transactie-instantie |
existsInDb()Controleert of het veld bestaat in de database.
Handtekening
existsInDb(options?: Transactionable): Promise<boolean>Parameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
options.transaction? | Transaction | - | Transactie-instantie |
NocoBase bevat enkele veelgebruikte ingebouwde veldtypen. U kunt de corresponderende typenaam direct gebruiken om het type te specificeren bij het definiëren van velden voor een collectie. Verschillende veldtypen hebben verschillende parameterconfiguraties; raadpleeg de onderstaande lijst voor details.
Alle configuratie-items voor veldtypen, met uitzondering van de hieronder geïntroduceerde, worden doorgestuurd naar Sequelize. Dit betekent dat alle door Sequelize ondersteunde veldconfiguratie-items hier kunnen worden gebruikt (zoals allowNull, defaultValue, enz.).
Bovendien lossen de server-side veldtypen voornamelijk problemen op met databaseopslag en bepaalde algoritmen, en zijn ze in principe niet gerelateerd aan de weergavetypen en gebruikte componenten van front-end velden. Voor front-end veldtypen verwijzen wij u naar de corresponderende instructies in de handleiding.
'boolean'Booleaans waardetype.
Voorbeeld
'integer'Integer type (32-bit).
Voorbeeld
'bigInt'Groot integer type (64-bit).
Voorbeeld
'double'Dubbele-precisie drijvende-kommagetal type (64-bit).
Voorbeeld
'real'Reëel getal type (alleen voor PG).
'decimal'Decimaal getal type.
'string'String type. Gelijk aan het VARCHAR-type in de meeste databases.
Voorbeeld
'text'Tekst type. Gelijk aan het TEXT-type in de meeste databases.
Voorbeeld
'password'Wachtwoord type (NocoBase-extensie). Versleutelt wachtwoorden op basis van de scrypt-methode van Node.js's native crypto-pakket.
Voorbeeld
Parameters
| Parameter | Type | Standaardwaarde | Beschrijving |
|---|---|---|---|
length | number | 64 | Tekenlengte |
randomBytesSize | number | 8 | Grootte van willekeurige bytes |
'date'Datum type.
'time'Tijd type.
'array'Array type (alleen voor PG).
'json'JSON type.
'jsonb'JSONB type (alleen voor PG, andere worden compatibel gemaakt als 'json' type).
'uuid'UUID type.
'uid'UID type (NocoBase-extensie). Kort willekeurig string-identificatietype.
'formula'Formule type (NocoBase-extensie). Maakt het configureren van wiskundige formuleberekeningen mogelijk op basis van mathjs. De formule kan verwijzen naar de waarden van andere kolommen in dezelfde record voor berekening.
Voorbeeld
'radio'Radio type (NocoBase-extensie). Maximaal één rij gegevens in de gehele collectie kan de waarde true hebben voor dit veld; alle andere zullen false of null zijn.
Voorbeeld
Er is slechts één gebruiker gemarkeerd als root in het hele systeem. Nadat de root-waarde van een andere gebruiker is gewijzigd naar true, worden alle andere records met root als true gewijzigd naar false:
'sort'Sorteer type (NocoBase-extensie). Sorteert op basis van gehele getallen, genereert automatisch een nieuw volgnummer voor nieuwe records en herschikt de volgnummers wanneer gegevens worden verplaatst.
Als een collectie de sortable-optie definieert, wordt er ook automatisch een corresponderend veld gegenereerd.
Voorbeeld
Berichten kunnen worden gesorteerd op basis van de gebruiker waartoe ze behoren:
'virtual'Virtueel type. Slaat geen gegevens op, wordt alleen gebruikt voor speciale getter/setter-definities.
'belongsTo'Veel-op-één associatietype. De foreign key wordt opgeslagen in de eigen tabel, in tegenstelling tot hasOne/hasMany.
Voorbeeld
Elk bericht behoort tot een auteur:
'hasOne'Eén-op-één associatietype. De foreign key wordt opgeslagen in de geassocieerde collectie, in tegenstelling tot belongsTo.
Voorbeeld
Elke gebruiker heeft een profiel:
'hasMany'Eén-op-veel associatietype. De foreign key wordt opgeslagen in de geassocieerde collectie, in tegenstelling tot belongsTo.
Voorbeeld
Elke gebruiker kan meerdere berichten hebben:
'belongsToMany'Veel-op-veel associatietype. Gebruikt een tussen-collectie om de foreign keys van beide zijden op te slaan. Als er geen bestaande collectie wordt gespecificeerd als de tussen-collectie, wordt er automatisch een tussen-collectie aangemaakt.
Voorbeeld
Elk bericht kan meerdere tags hebben, en elke tag kan aan meerdere berichten worden toegevoegd: