|
@@ -70,31 +70,34 @@ console.log(country);
|
|
|
// }
|
|
// }
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-1. Экземпляр класса `Schema` хранит информацию об источниках данных, моделей
|
|
|
|
|
|
|
+Экземпляр класса `Schema` хранит информацию об источниках данных, моделей
|
|
|
и предоставляет методы для их определения.
|
|
и предоставляет методы для их определения.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
import {Schema} from '@e22m4u/js-repository';
|
|
import {Schema} from '@e22m4u/js-repository';
|
|
|
|
|
|
|
|
|
|
+// 1. создание экземпляра Schema
|
|
|
const schema = new Schema();
|
|
const schema = new Schema();
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-2. С помощью метода `schema.defineDatasource` определяются источники данных,
|
|
|
|
|
|
|
+С помощью метода `schema.defineDatasource` определяются источники данных,
|
|
|
которые хранят название адаптера и его настройки.
|
|
которые хранят название адаптера и его настройки.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
|
|
+// 2. определение источника "myMemory"
|
|
|
schema.defineDatasource({
|
|
schema.defineDatasource({
|
|
|
name: 'myMemory', // название нового источника
|
|
name: 'myMemory', // название нового источника
|
|
|
adapter: 'memory', // выбранный адаптер
|
|
adapter: 'memory', // выбранный адаптер
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-3. Когда источник определен, можно добавить модель методом `schema.defineModel`.
|
|
|
|
|
|
|
+Когда источник определен, можно добавить модель методом `schema.defineModel`.
|
|
|
Модель описывает структуру документа коллекции и связи к другим моделям.
|
|
Модель описывает структуру документа коллекции и связи к другим моделям.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
import {DataType} from '@e22m4u/js-repository';
|
|
import {DataType} from '@e22m4u/js-repository';
|
|
|
|
|
|
|
|
|
|
+// 3. определение модели "country"
|
|
|
schema.defineModel({
|
|
schema.defineModel({
|
|
|
name: 'country', // название новой модели
|
|
name: 'country', // название новой модели
|
|
|
datasource: 'myMemory', // выбранный источник
|
|
datasource: 'myMemory', // выбранный источник
|
|
@@ -105,19 +108,19 @@ schema.defineModel({
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-4. Наличие источника данных в определении модели позволяет получить
|
|
|
|
|
|
|
+Наличие параметра `datasource` в определении модели позволяет получить
|
|
|
репозиторий по ее названию методом `schema.getRepository`
|
|
репозиторий по ее названию методом `schema.getRepository`
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
-// получение репозитория для модели "country"
|
|
|
|
|
|
|
+// 4. получение репозитория для модели "country"
|
|
|
const countryRep = schema.getRepository('country');
|
|
const countryRep = schema.getRepository('country');
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-5. Репозиторий является инструментом для чтения и записи документов
|
|
|
|
|
|
|
+Репозиторий является инструментом для чтения и записи документов
|
|
|
определенной модели.
|
|
определенной модели.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
-// добавление нового документа в коллекцию "country"
|
|
|
|
|
|
|
+// 5. добавление нового документа в коллекцию "country"
|
|
|
const country = await countryRep.create({
|
|
const country = await countryRep.create({
|
|
|
name: 'Russia',
|
|
name: 'Russia',
|
|
|
population: 143400000,
|
|
population: 143400000,
|