В моем последнем посте я объяснил фундаментальные концепции, которые необходимо понять, чтобы использовать возможности Feathers, но в этом посте, вместо того, чтобы иметь общий обзор того, как работает фреймворк, мы будем создавать очень простое приложение Feathers, которое может сказать Привет миру.

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

Прежде чем мы начнем создавать это замечательное приложение, убедитесь, что на вашем компьютере установлен Node.js, в противном случае вы можете скачать его здесь. Я использую для этого приложения Node версии 8.11.2 и npm версии 5.6.0.

Давайте начнем с создания каталога с именем feathers-hello-world для размещения нашего проекта. В терминале создайте каталог и измените на него свой рабочий каталог, например:

$ mkdir feathers-hello-world
$ cd feathers-hello-world

Отсюда мы можем инициализировать наш проект с помощью:

$ npm init -y

Будет создан package.json файл, содержащий подробную информацию о нашем проекте, включая объявления зависимостей проекта.

Теперь давайте установим нашу единственную зависимость @feathersjs/feathers:

$ npm install --save @feathersjs/feathers

Когда все будет готово, ваш package.json файл должен выглядеть так:

Теперь давайте создадим index.js файл для записи всего нашего кода:

$ touch index.js

Теперь давайте инициализируем наше приложение внутри index.js следующим образом:

В первой строке мы импортируем FeathersJS, чтобы инициализировать наш объект app, используя его во второй строке.

Теперь давайте реализуем наш HelloService, который реализует только два служебных метода: create, и find.

Позвольте мне объяснить, что происходит:

  • В конструкторе мы инициализируем массив names, который представляет собой массив, в котором мы будем хранить имена людей.
  • Метод create является одним из методов обслуживания, и он отвечает за создание новых записей о людях, которых мы, возможно, захотим снова поприветствовать в будущем.
    Метод create принимает два параметра: data, который представляет собой объект, содержащий данные мы будем хранить и params, необязательный параметр, который может содержать дополнительные данные, которые мы можем использовать в процессе создания записи.
    Метод create не только сохраняет имя нового посетителя, но также возвращает личное приветствие для этого человека.

Примечание.. Метод службы должен возвращать JavaScript Promise или должен быть асинхронной функцией.

  • Метод find - это еще один из методов службы Feathers, он отвечает за получение всех приветствий, когда-либо встреченных приложением.
    Метод find принимает один параметр: params, который может содержать информацию, которая может использоваться при поиске записей для более конкретных результатов.
  • helloTo метод - это просто вспомогательный метод, который используется обоими служебными методами для преобразования имен людей в приветствия.
  • В первой части этой серии я кратко упомянул объект app и то, как он связывает наше приложение вместе, а в последней строке мы видим, как служба регистрируется с использованием метода use() объекта app. Все службы в нашем приложении должны быть зарегистрированы одинаковым образом.
    Первый аргумент app.use() - это путь к службе, то есть строка, которую вы будете использовать для получения доступа к службе через app.service() метод. Второй аргумент - это новый экземпляр службы, которую вы хотите зарегистрировать, или просто объект, реализующий один или несколько методов службы.

Теперь наш сервис готов к использованию. Теперь давайте напишем немного кода, чтобы позволить пользователю взаимодействовать с приложением через командную строку:

Обратите внимание, как мы использовали app.service('hello') для получения ссылки на HelloService, это метод, который вы должны использовать для доступа к любой службе в вашем приложении.

Теперь, если вы запустите приложение с помощью команды:

$ node index.js

Приложение поздоровается с вами, если вы введете свое имя и нажмете Enter, но не только вы, оно может поздороваться со всеми, кто назовет свое имя !, друзьям, семье, действительно всем, с кем вы его представите! И если вы Чтобы он поздоровался со всеми, кого он знает, вы можете набрать «все» и нажать Enter, как это круто?… Боюсь, не так круто. Вот так index.js должен выглядеть сейчас:

Что круто, так это то, что вы можете превратить этот pp в RESTful API с помощью одной команды и 6 строк кода. Начните с установки @feathersjs/express:

$ npm install --save @feathersjs/express

Теперь измените ваш index.js файл, чтобы он выглядел так:

Я избавлю вас от деталей API-интерфейсов RESTful Feathers до следующего поста, но пока достаточно сказать, что вызов методов службы с использованием HTTP очень похож на то, как мы вызывали их локально, где вы могли бы использовать HTTP GET для вызова find и POST для вызова метода create.

При запуске node index.js на вашем терминале должно быть распечатано следующее:

Hello World app is running on http://localhost:3000

Используя такие инструменты, как CURL или Postman, вы можете отправить HTTP-запрос POST на http://localhost:3000/hello с телом JSON: { "name": "John Doe" }, и сервер ответит дружеским Привет, Джон Доу!. Если вы отправите HTTP-запрос GET на тот же URL-адрес, вы получите массив приветствий для всех имен, которые вы отправили в службу приветствия.

Заключение

В этом посте мы создали очень простое приложение Feathers, которое состоит из одной службы, что позволило нам увидеть два метода службы в действии, и мы увидели, насколько легко использовать эту службу с помощью REST. В следующей части мы создадим более практичный и устойчивый RESTful API, который даст нам возможность посмотреть, как реализованы хуки и насколько легко Feathers делает доступ к вашей базе данных с помощью адаптеры баз данных.