Prerequisites:
- Install command-line tools as described in Installation.
- Follow Getting started with LoopBack
Recommended: Read LoopBack core concepts.
Page Contents
Используйте LoopBack консоль, slc loopback
, для создания и скаффолдинга приложений. Скаффолдинг попросту означает генерацию основного кода вашего приложения, что позволяет вам сохранить ваше время. Вы можите дополнить код и модифицировать его под вши нужды.
Создание нового приложения
Чтоб создать новое приложение, запустите LoopBack генератор приложений:
LoopBack генератор поприветствует вас дружественным ASCII артом, и попросит ввести имя приложения.
Введите loopback-getting-started
. На следующем шаге генератор попросит ввести имя каталога в котором будет хранится ваше приложение; нажмите Enter чтоб принять значение по умолчанию (такое же, как имя вашего приложения):
_-----_
| | .--------------------------.
|--(o)--| | Let's create a LoopBack |
`---------´ | application! |
( _´U`_ ) '--------------------------'
/___A___\
| ~ |
__'.___.'__
´ ` |° ´ Y `
[?] What's the name of your application? loopback-getting-started
[?] Enter name of the directory to contain the project: loopback-getting-started</pre>
Вы можите использовать другое имя для вашего приложения, но если вы это сделаете, то убедитесь, что используете его везде, где в данном учебнике используется “loopback-getting-started”.
Генератор создаст основу приложения, включая:
- Инициализация каталоговой структуры проекта.
- Создание стандартных JSON файлов.
- Создание стандартных JavaScript файлов.
- Загрузку и установку нужных Node модулей (как если бы вы сделали вручную их
установку в <span>npm
).
После окончания операции, генератор предложит вам следующие шаги:
Next steps:
Change directory to your app
$ cd loopback-getting-started
Create a model in your app
$ slc loopback:model
Optional: Enable StrongOps monitoring
$ slc strongops
Run the app
$ slc run .
Создание моделей
Теперь, когда вы создали каркас проекта, создайте CoffeeShop модель, которая автоматически будет иметь REST API endpoints.
Зайдите в новосозданный каталог приложения, затем запустите LoopBack генератор модели:
$ cd loopback-getting-started
$ slc loopback:model
Генератор спросит у вас имя модели. Введите CoffeeShop:
[?] Enter the model name: CoffeeShop
Далее вас спросят, не хотели бы вы прикрепить модель к хранилищам данных, которые уже определенны.
В этот момент у вас доступны только хранилища данных, используемые по умолчанию. Нажмите Enter для их выбора:
...
[?] Select the data-source to attach CoffeeShop to: (Use arrow keys)
❯ db (memory)</pre>
Генератор попросит вас ввести базовый класс для использования в модели. Так как, в конечном итоге вы подключите эту модель к постоянному хранилищу данных в базе данных, то нажмите стрелку вниз и выберите PersistedModel, затем нажмите Enter:
[?] Select model's base class: (Use arrow keys)
Model
❯ PersistedModel
ACL
AccessToken
Application
Change
Checkpoint </pre>
PersistedModel является базовым объектом для всех моделей, подключенных к постоянным хранилищам данных, таким как базы данных. См. Основные понятия LoopBack для краткого обзора иерархии наследования модели.
Одним из сильнейших преимуществ LoopBack являться то, что он автоматически генерирует REST API для вашей модели. Генератор спросит вас, стоит ли делать данный REST API открытым.
Нажмите Enter снова, для принятия значения по умолчанию, и открыть Person модель через REST:
[?] Expose CoffeeShop via the REST API? (Y/n) Y
LoopBack автоматически создаст REST путь связи с вашей моделью используя множественное число имени модели. По умолчанию это множественное число имени будет создано путем добавления окончания “s”, но вы можите использовать другую форму множественного числа, если захотите. См Использование модели через REST для получения более подробной информации.
Нажмите Enter для согласия с предложенным множественным числом по умолчанию (CoffeeShops):
[?] Custom plural form (used to build REST URL): </pre>
Каждая модель имеит свойства. Прямо сейчас вы пытаетесь одно из свойств - “name”, для модели CoffeeShop.
Выберите string
в качестве типа свойства (нажмите Enter, так как строка это тип по умолчанию):
Let's add some CoffeeShop properties now.
Enter an empty property name when done.
[?] Property name: name
invoke loopback:property
[?] Property type: (Use arrow keys)
❯ string
number
boolean
object
array
date
buffer
geopoint
(other)
Каждое свойство может быть обязательным или не обязательным. Нажмите y
чтоб сделать name
обязательным свойством:
?] Required? (y/N)
В конце процесса создания модели нажмите Enter когда появится вопрос о имени следующего свойства.
Проверка структуры проекта
Warning:
Ниже описана структура приложения, которая создается с помощью [slc loopback](https://docs.strongloop.com/pages/viewpage.action?pageId=5310655) команд
. LoopBack не требует, чтоб вы следовали данной структуры, но если вы этого не сделаете, вы не сможете использовать [slc loopback](https://docs.strongloop.com/pages/viewpage.action?pageId=5310655)
команды для изменения и расширения вашего приложения.
Файлы и папки проекта LoopBack находятся в корневой папке приложения. В этом каталоге стандартная структура LoopBack проекта состоит из трех подпапок:
server
- Node приложение, скрипты и файлы конфигурации.client
- клиентские JavaScript, HTML, и CSS файлы.common
- Общие файлы для сервера и клиента. Подкаталог/models
содержит все JSON и JavaScript файлы моделей.
Все ваши JSON и JavaScript файлы модели находятся в /common/models
папке.
Файлы или папки | Описание | Как получить доступ в коде | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Каталог верхнего уровня | ||||||||||||||||||||||||||||||||||
[package.json](package.json.html) | Стандартные спецификации npm пакетов. См. [package.json](package.json.html) | N/A | ||||||||||||||||||||||||||||||||
/server папка- файлы Node приложения</th>
</tr>
`[server.js](server.js.html)` |
Основной файл приложения (сам сервер). |
N/A |
`[config.json](config.json.html)` |
Настройки приложения. См. [config.json](config.json.html). |
`app.get('option-name')` |
`[datasources.json](datasources.json.html)` |
Файл конфигурации источников данных. См. [datasources.json](datasources.json.html). |
`app.datasources['datasource-name']` |
`[model-config.json](model-config.json.html)` |
Файл конфигурации модели. См. [model-config.json](model-config.json.html). |
N/A |
`[middleware.json](middleware.json.html)` |
Middleware definition file. |
N/A |
`/boot` папка |
Дополнительные скрипты для выполнения инициализации и настройки. См. [boot scripts](Defining-boot-scripts.html). |
Сценарии выполняются автоматически в алфавитном порядке. |
****/client папка-** клиентские файлы приложения** |
README.md |
LoopBack генераторы создают пустые README в markdown формате. |
N/A |
Другие |
Ваши дополнительные HTML, CSS, клиентские JavaScript файлы. |
/common папка - общие файлы приложения</th>
</tr>
| `/models` папка |
Пользовательские файлы модели:
* Определения модели по конвенции имени `_modelName_.json`; например `customer.json`.
* Пользовательские скрипты одели по конвенции имени `_modelName_.js`; например `customer.js`.
См. [Model definition JSON file](Model-definition-JSON-file.html).
|
Node:
`myModel = app.models.myModelName`
|
Next: [Используя API Explorer](5310601.html), вы можете рассмотреть REST API модель, которую вы только что создали более подробно и осуществить другие операции.
|