e22m4u 2 лет назад
Родитель
Сommit
e0b36dc6de
1 измененных файлов с 39 добавлено и 9 удалено
  1. 39 9
      README.md

+ 39 - 9
README.md

@@ -2,11 +2,6 @@
 
 
 Абстракция для работы с базами данных для Node.js
 Абстракция для работы с базами данных для Node.js
 
 
-| адаптер | описание                                                                                                                                        |
-|---------|-------------------------------------------------------------------------------------------------------------------------------------------------|
-| memory  | виртуальная база в памяти процесса (для разработки и тестирования)                                                                              |
-| mongodb | MongoDB - система управления NoSQL базами данных (*[требует установки](https://www.npmjs.com/package/@e22m4u/js-repository-mongodb-adapter))* |
-
 ## Установка
 ## Установка
 
 
 ```bash
 ```bash
@@ -22,6 +17,13 @@ npm install @e22m4u/js-repository
 npm install @e22m4u/js-repository-mongodb-adapter
 npm install @e22m4u/js-repository-mongodb-adapter
 ```
 ```
 
 
+Список доступных адаптеров:
+
+| адаптер | описание                                                                                                                                        |
+|---------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| memory  | виртуальная база в памяти процесса (для разработки и тестирования)                                                                              |
+| mongodb | MongoDB - система управления NoSQL базами данных (*[требует установки](https://www.npmjs.com/package/@e22m4u/js-repository-mongodb-adapter))* |
+
 ## Концепция
 ## Концепция
 
 
 Модуль позволяет спроектировать систему связанных данных, доступ к которым
 Модуль позволяет спроектировать систему связанных данных, доступ к которым
@@ -87,8 +89,9 @@ schema.defineDatasource({
 какого-либо объекта, так и являться отражением реальной коллекции базы.
 какого-либо объекта, так и являться отражением реальной коллекции базы.
 
 
 Представьте себе коллекцию торговых точек, у каждой из которых имеются
 Представьте себе коллекцию торговых точек, у каждой из которых имеются
-координаты `lat` и `lng`. Мы могли бы заранее определить модель для
-объекта координат, и использовать его в других коллекциях.
+координаты `lat` и `lng`. Мы можем заранее определить модель для
+объекта координат методом `defineModel` и использовать ее в других
+коллекциях.
 
 
 ```js
 ```js
 schema.defineModel({
 schema.defineModel({
@@ -100,10 +103,37 @@ schema.defineModel({
 });
 });
 ```
 ```
 
 
+Параметр `properties` принимает объект, ключи которого являются именами
+полей, а значением тип поля или объект с дополнительными параметрами.
+
+```js
+schema.defineModel({
+  name: 'latLng',
+  properties: {
+    lat: DataType.NUMBER, // краткое определение поля "lat"
+    lng: { // определение поля "lng" с параметром "required"
+      type: DataType.NUMBER,
+      required: true, // исключает null и undefined
+    },
+  },
+});
+```
+
+Типы данных:
+
+| enum               | значение    |
+|--------------------|-------------|
+| `DataType.ANY`     | `"any"`     |
+| `DataType.STRING`  | `"string"`  |
+| `DataType.NUMBER`  | `"number"`  |
+| `DataType.BOOLEAN` | `"boolean"` |
+| `DataType.ARRAY`   | `"array"`   |
+| `DataType.OBJECT`  | `"object"`  |
+
 Модель `latLng` всего лишь описывает структуру объекта координат, тогда
 Модель `latLng` всего лишь описывает структуру объекта координат, тогда
 как торговая точка должна иметь реальную таблицу в базе. По аналогии с
 как торговая точка должна иметь реальную таблицу в базе. По аналогии с
-предыдущим примером, добавим модель `place`, но укажем не только название
-модели и ее поля, а еще и источник данных в параметре `datasource`
+предыдущим примером, добавим модель `place`, но дополнительно укажем
+источник данных в параметре `datasource`
 
 
 ```js
 ```js
 schema.defineModel({
 schema.defineModel({