Page Contents

Следующий шаг

Если вы не прошли Начало работы с LoopBack, то сейчас самое время это сделать.  

Для более глубокого понимания  LoopBack и того, как он работает, прочитайте Определение модели и Соединение модели с базой данных. руководство пошаговый опишет создание простого LoopBack приложения. 

На GitHub  вы найдете репозиторий   loopback-getting-started с готовым приложением, создание которого будет описываться в данном руководстве. Вы можите скачать его себе и пройти шаг за шагом, которые мы для вас заблаговременно подготовили в виде тегов tags.

Вы можите выполнить все пошагово для того, чтоб создать приложение и понять смысл некоторых вещей в  LoopBack , или просто перейти к тому шагу, который вас интересует:

Какие коннекторы данных есть в LoopBack?

LoopBack provides numerous connectors to access enterprise and other backend data systems.

LoopBack предоставляет многочисленные коннекторы для доступа крупных проектов и других backend систем данных.

Коннекторы баз данных:

Другие коннекторы:

Кроме того, есть общественные соединители, созданные разработчиками в LoopBack сообществе с открытым исходным кодом.

Почему curl запрос к моему LoopBack приложению терпит неудачу?

If the URL loads fine in a browser, but when you make a curl request to your app you get the error:

Если URL загружается в браузере хорошо, но когда вы делаете curl запрос к вашему приложению вы получаете сообщение об ошибке:

curl: (7) Failed to connect to localhost port 3000: Connection refused

Причиной скорей всего будет несовместимость IP версии между вашим приложением и curl.

LoopBack, по умолчанию использует IP v4, а curl может использовать IP v6. Если вы увидите IP v6 запись в вашем фале хоста (::1 localhost, fe80::1%lo0 localhost), вполне вероятно, что curl делает запрос используя IP v6. Для того, чтоб сделать запрос используя IP v4, укажите свой --ipv4 параметр в вашем curl запросе, как показано ниже.

$ curl http://localhost:3000 --ipv4

Вы можите сделать, чтоб ваше LoopBack приложение использовало IP v6, указав адрес IP v6, как показано ниже:

app.start = function() {
  // start the web server
  return app.listen(3000, '::1', function() {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};

Более конкретные вопросы

После того, как вы начнете работать с LoopBack, у вас могут появится более конкретные вопросы. Наиболее распространенные из них мы собрали тут с короткими вопросами и ссылками на документацию для получения полного ответа. 

Как вы выполняете GET запрос на удаленный сервер?

Во-первых, вы должны настроить источник данных, используя  REST коннектор. В datasources.json  файле, который конфигурирует источник данных, вы можите задать  операцию обратную REST API, используя свойства операций.

В качестве короткого примера см.  loopback-faq-rest-connector.

Может приложение возвращать XML вместо JSON?

Да: в server/config.json установить свойство remoting.rest.xml как true.  См. config.json для получения более детальной информации.

Как послать email из приложения?

Вкратце:

  1. Настроить источник данных для использования  email коннекта.
  2. Спроектируйте Email модель в  источник данных email.
  3. Отправить email используя модель настроенную с помощью  Email.send().

См. loopback-faq-email для примера.

How do you use static middleware?

Static middleware enables an application to serve static content such as HTML, CSS, images, and client JavaScript files.  To add it:

  1. Remove the contents of the default "routes" property in middleware.json.
  2. Add the following to the "files" property in middleware.json: to serve static content from the project’s /client directory.

    "loopback#static": { 
      "params": "$!../client"
    }
    

    Of course, change the value to use a different directory to contain static content.

See Defining middleware for more information, and loopback-faq-middleware for a short example.

What kind of hooks do models support?

Model hooks are functions that are executed when certain events occur in a model’s lifecycle.  LoopBack models many different hooks, for example: afterInitialize after a model is initialized, beforeValidate / afterValidate (before and after  model validation), beforeSave / afterSave (before and after a model is saved), and so on.

See Model hooks for a complete list and more information.  See loopback-faq-model-hooks for a brief example.

Вопросы управления пользователями

See Управление пользователями for more information and loopback-faq-user-management for relevant code examples.

См.  Управление юзерами для получения более подробной информации и примеры кода  loopback-faq-user-management 

Примечание:

Как зарегистрировать нового пользователя?

  1. Создайте форму регистрации.
  2. Создайте remote hook для отправки email с подтверждением.

Примечание:

  • При выполнении, user.verify посылает электронную почту с помощью предложенных опций.
  • Верификация email настроена для redirect the user to the /verified route для общего случая. Для вашего приложения  вы должны настроить перенаправление  конкретно для своего случая.
  • Опции self-explanitory не считая typetemplate and user.
    • type - значением должен быть email.
    • template -путь к шаблону для проверки email.
    • user - когда это предусмотрено, информация в объекте будет использована в  проверочной ссылке email.

Как вы отсылаете проверочный email новому юзеру?

См. шаг 2 в предыдущем вопросе.

Реализация возможности логина пользователя?

  1. Создайте форму входа.
  2. Создайте маршрута обработки запроса входа.

Реализация возможности разлогировнаия пользователя?

  1. Создайте ссылку разлогировнаия с access token внедренного в URL.
  2. Вызовите User.logout с access token.

Примечание:

  • Мы используем loopback token middleware для обработки access tokens. До тех пор, пока вы не представите access_token в строке запроса URL,  access token объекта будет представлен в req.accessToken свойстве в вашем обработчике маршрута.

Как реализовать сброс пароля для зарегистрированного пользователя

  1. Создайте форму сброса пароля.
  2. Создайте endpoint для обработки информации сброса пароля. Вызов User.resetPassword выдает resetPasswordRequest событие, и создает временный access token.
  3. Зарегистрируйте обработчик события resetPasswordRequest который отправит email зарегистрированному пользователю. В нашем примере, мы приводим URL, который перенаправляет пользователя на  страницу сброса пароля с проверкой подлинности с временным access token.
  4. Создайте форму сброса пароля, где пользователь введет и подтвердит новый пароль.
  5. Создайте endpoint процесса сброса пароля.

Примечание: Для обработчика обратного вызова resetPasswordRequest, вам предоставляется с объектом информация, которая содержит данные, относящиеся к пользователю, который запрашивает сброс пароля.