sails.js
Modele
Szukaj…
Uwagi
Żagle są instalowane z potężnym narzędziem ORM / ODM o nazwie Waterline, agnostycznym narzędziem do przechowywania danych, które znacznie upraszcza interakcję z jedną lub kilkoma bazami danych. Zapewnia warstwę abstrakcji na podstawowej bazie danych, umożliwiając łatwe wyszukiwanie danych i manipulowanie nimi bez pisania kodu integracji specyficznego dla dostawcy.
Model podstawowy
Ten przykład pokazuje, jak zdefiniować prosty model w Sails.js
Możesz wygenerować pusty plik modelu, wpisując
sails generate model car
Nowy plik Car.js
w api/models/
.
Następnie podaj kilka szczegółów.
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']
}
}
};
W powyższym przykładzie wykorzystano prawie każdą możliwą opcję modelu, które wyjaśniono poniżej.
1. tableName
Ten parametr określa nazwę tabeli, która zostanie utworzona w bazie danych. Jeśli nie zostanie zdefiniowany, zostanie użyta nazwa modelu (w tym przykładzie car
).
2. połączenie
Ten konkretnie określa połączenie z bazą danych używane dla modelu. Szczegóły tego połączenia są zdefiniowane w kluczu mongodb
w mongodb
config/connections.js
. Oto format połączenia:
mongodb : {
// The driver that connect our models with the database
adapter : '<adapter>',
// The database parameters
user : '<username>',
port : <port>,
host : '<host>',
database : '<database>'
}
3. atrybuty
Każdy atrybut odwołuje się do kolumny w tabeli bazy danych modelu. W tym przykładzie zostanie utworzonych dziewięć kolumn. Każdą kolumnę można skonfigurować za pomocą jednego lub więcej następujących kluczy:
- typ : typ danych kolumny. Ta strona zawiera listę wszystkich dostępnych typów.
- unikatowy : jeśli wartość true, wystąpi błąd, jeśli spróbujesz utworzyć obiekt, który ma tę samą wartość dla tej kolumny, co już w bazie danych.
- primaryKey : Jeśli true, kolumna będzie działać jako klucz podstawowy.
- autoIncrement : Sekwencja zostanie powiązana z kolumną z automatycznie rosnącą liczbą rozpoczynającą się od 0.
- rozmiar : maksymalna długość kolumny.
- wymagane : Jeśli to prawda, nie może być zerowe.
- columnName : konfiguruje kolumnę w bazie danych, która domyślnie przyjmuje nazwę atrybutu.
- wyliczanie : Możemy ustawić tablicę możliwych opcji dla atrybutu.