sails.js
modellen
Zoeken…
Opmerkingen
Sails wordt geleverd met een krachtige ORM / ODM genaamd Waterline, een datastore-agnostisch hulpmiddel dat de interactie met een of meer databases aanzienlijk vereenvoudigt. Het biedt een abstractielaag bovenop de onderliggende database, zodat u eenvoudig uw gegevens kunt opvragen en manipuleren zonder leveranciersspecifieke integratiecode te schrijven.
Basismodel
Dit voorbeeld laat zien hoe u een eenvoudig model in Sails.js definieert
U kunt een leeg modelbestand genereren door te typen
sails generate model car
Je vindt het nieuwe bestand Car.js
in api/models/
.
Vervolgens vult u enkele gegevens in.
modules.exports = {
tableName : 'cars',
connection : 'mongodb',
attributes : {
id : {
type : 'integer',
unique : true,
primaryKey : true,
autoIncrement : true
},
brand : {
type : 'string',
size : 25
},
description : {
type: 'text',
defaultsTo : ''
},
price : {
type : 'float',
required : true
},
seats : {
type : 'integer'
},
sell_date : {
type : 'datetime'
},
has_cooler : {
type : 'boolean',
columnName : 'cooler'
},
chassis_number : {
unique : true,
type : 'string'
},
color : {
type : 'string',
enum: ['white', 'red', 'black']
}
}
};
In het bovenstaande voorbeeld wordt bijna elke mogelijke modeloptie gebruikt, die hieronder wordt uitgelegd.
1. tabelnaam
Deze parameter definieert de naam van de tabel die in de database wordt gemaakt. Indien niet gedefinieerd, wordt de modelnaam gebruikt ( car
in dit voorbeeld).
2. verbinding
Deze definieert de databaseverbinding die voor het model wordt gebruikt. De details van die verbinding worden gedefinieerd onder de mongodb
sleutel in config/connections.js
. Dit is het formaat van een verbinding:
mongodb : {
// The driver that connect our models with the database
adapter : '<adapter>',
// The database parameters
user : '<username>',
port : <port>,
host : '<host>',
database : '<database>'
}
3. attributen
Elk kenmerk verwijst naar een kolom in de databasetabel voor het model. In dit voorbeeld worden negen kolommen gemaakt. Elke kolom kan worden geconfigureerd met een of meer van de volgende toetsen:
- type : het gegevenstype van de kolom. Op deze pagina staan alle beschikbare types.
- uniek : indien waar, treedt er een fout op als u probeert een object te maken met dezelfde waarde voor deze kolom als een object dat al in de database staat.
- primaryKey : Indien true, werkt de kolom als primaire sleutel.
- autoIncrement : een reeks wordt aan de kolom gekoppeld met een automatisch oplopend getal dat begint bij 0.
- grootte : de maximale lengte van de kolom.
- vereist : als het waar is, kan het niet nul zijn.
- columnName : hiermee wordt de kolom in de database geconfigureerd, die standaard de kenmerknaam is .
- enum : We kunnen een reeks mogelijke opties instellen voor een attribuut.