Use the application generator tool to quickly create a LoopBack application, models, and data sources.

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”.

Генератор создаст основу приложения, включая:

  1. Инициализация каталоговой структуры проекта.
  2. Создание стандартных JSON файлов.
  3. Создание стандартных JavaScript файлов.
  4. Загрузку и установку нужных 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 когда появится вопрос о имени следующего свойства.

Проверка структуры проекта

Файлы и папки проекта LoopBack находятся в корневой папке приложения.  В этом каталоге стандартная структура LoopBack проекта состоит из трех подпапок:

  • server - Node приложение, скрипты и файлы конфигурации.
  • client - клиентские JavaScript, HTML, и CSS файлы.
  • common - Общие файлы для сервера и клиента. Подкаталог /models содержит все JSON и JavaScript файлы моделей.

Все ваши JSON и JavaScript файлы модели находятся в /common/models папке.

</tbody> </table> Кроме того каталоги верхнего уровня содержат заглушку `README.md` файл, и `node_modules` папку (требующихся для Node модулей ). Для более подробной информации о канонической структуре LoopBack приложения, см [Справка по проектированию проекта](Project-layout-reference.html). Запуск приложения с помощью `slc` (StrongLoop Controller) происходит также как при использовании `node` команд, но `slc` предоставляет возможность кластеризации, логирования , мониторинга и других опций. См [Работа Node приложений](https://docs.strongloop.com/display/SLC/Operating+Node+applications) and [Начало работы](5310598.html) для получения более детальной информации о возможносятх `slc` консоли. Если вы хотите запустить сервер в [многопроцессовом кластере](https://docs.strongloop.com/display/SLC/Scaling), используйте следующую команду:  ```shell$ slc run --cluster cpus ``` Откройте в браузере [http://0.0.0.0:3000/](http://0.0.0.0:3000/) (на некоторых системах возможно придется использовать такой адрес  [http://localhost:3000](http://localhost:3000/)).  Вы уведите  стандартную страницу ответа приложения, которая будет отображать JSON с информацией о состоянии приложения; для примера: `{"started":"2014-11-20T21:59:47.155Z","uptime":42.054}` А теперь откройте в вашем браузере [http://0.0.0.0:3000/explorer](http://0.0.0.0:3000/explorer) или [http://localhost:3000/explorer](http://localhost:3000/explorer).  Вы увидите StrongLoop API Explorer. Путем простых шагов, используя  LoopBack, вы создали CoffeeShop модель, определили ее свойства а затем вывели ее через  REST. 
Next: [Используя API Explorer](5310601.html), вы можете рассмотреть REST API модель, которую вы только что создали более подробно и осуществить другие операции.
Файлы или папки Описание Как получить доступ в коде
Каталог верхнего уровня
[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`