|
@@ -6,7 +6,6 @@
|
|
|
|
|
|
|
|
- [Установка](#Установка)
|
|
- [Установка](#Установка)
|
|
|
- [Пример](#Пример)
|
|
- [Пример](#Пример)
|
|
|
-- [Использование](#Использование)
|
|
|
|
|
- [Источник данных](#Источник-данных)
|
|
- [Источник данных](#Источник-данных)
|
|
|
- [Модель](#Модель)
|
|
- [Модель](#Модель)
|
|
|
- [Репозиторий](#Репозиторий)
|
|
- [Репозиторий](#Репозиторий)
|
|
@@ -33,16 +32,16 @@ npm install @e22m4u/js-repository
|
|
|
```js
|
|
```js
|
|
|
import {Schema} from '@e22m4u/js-repository'
|
|
import {Schema} from '@e22m4u/js-repository'
|
|
|
|
|
|
|
|
-// создание экземпляра схемы
|
|
|
|
|
|
|
+// 1. создание экземпляра Schema
|
|
|
const schema = new Schema();
|
|
const schema = new Schema();
|
|
|
|
|
|
|
|
-// определение источника "myMemory"
|
|
|
|
|
|
|
+// 2. определение источника "myMemory"
|
|
|
schema.defineDatasource({
|
|
schema.defineDatasource({
|
|
|
name: 'myMemory', // название нового источника
|
|
name: 'myMemory', // название нового источника
|
|
|
adapter: 'memory', // выбранный адаптер
|
|
adapter: 'memory', // выбранный адаптер
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-// определение модели "country"
|
|
|
|
|
|
|
+// 3. определение модели "country"
|
|
|
schema.defineModel({
|
|
schema.defineModel({
|
|
|
name: 'country', // название новой модели
|
|
name: 'country', // название новой модели
|
|
|
datasource: 'myMemory', // выбранный источник
|
|
datasource: 'myMemory', // выбранный источник
|
|
@@ -52,10 +51,10 @@ schema.defineModel({
|
|
|
},
|
|
},
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
-// получение репозитория для модели "country"
|
|
|
|
|
|
|
+// 4. получение репозитория для модели "country"
|
|
|
const countryRep = schema.getRepository('country');
|
|
const countryRep = schema.getRepository('country');
|
|
|
|
|
|
|
|
-// добавление нового документа в коллекцию "country"
|
|
|
|
|
|
|
+// 5. добавление нового документа в коллекцию "country"
|
|
|
const country = await countryRep.create({
|
|
const country = await countryRep.create({
|
|
|
name: 'Russia',
|
|
name: 'Russia',
|
|
|
population: 143400000,
|
|
population: 143400000,
|
|
@@ -70,9 +69,7 @@ console.log(country);
|
|
|
// }
|
|
// }
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-## Использование
|
|
|
|
|
-
|
|
|
|
|
-Экземпляр класса `Schema` хранит информацию об источниках данных, моделей
|
|
|
|
|
|
|
+1. Экземпляр класса `Schema` хранит информацию об источниках данных, моделей
|
|
|
и предоставляет методы для их определения.
|
|
и предоставляет методы для их определения.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
@@ -81,7 +78,7 @@ import {Schema} from '@e22m4u/js-repository';
|
|
|
const schema = new Schema();
|
|
const schema = new Schema();
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-С помощью метода `schema.defineDatasource` определяются источники данных.
|
|
|
|
|
|
|
+2. С помощью метода `schema.defineDatasource` определяются источники данных.
|
|
|
Источник данных хранит название адаптера и его настройки.
|
|
Источник данных хранит название адаптера и его настройки.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
@@ -91,7 +88,7 @@ schema.defineDatasource({
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Когда источник определен, можно добавить модель методом `schema.defineModel`.
|
|
|
|
|
|
|
+3. Когда источник определен, можно добавить модель методом `schema.defineModel`.
|
|
|
Модель описывает структуру документа коллекции и связи к другим моделям.
|
|
Модель описывает структуру документа коллекции и связи к другим моделям.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
@@ -105,7 +102,7 @@ schema.defineModel({
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Наличие источника данных в модели позволяет получить репозиторий по
|
|
|
|
|
|
|
+4. Наличие источника данных в модели позволяет получить репозиторий по
|
|
|
ее названию методом `schema.getRepository`
|
|
ее названию методом `schema.getRepository`
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
@@ -113,7 +110,7 @@ schema.defineModel({
|
|
|
const countryRep = schema.getRepository('country');
|
|
const countryRep = schema.getRepository('country');
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Репозиторий является инструментом для чтения и записи документов
|
|
|
|
|
|
|
+5. Репозиторий является инструментом для чтения и записи документов
|
|
|
определенной модели.
|
|
определенной модели.
|
|
|
|
|
|
|
|
```js
|
|
```js
|