Я организую местное мероприятие для 400 человек, поэтому я хотел создать элегантный и быстрый способ регистрации гостей. Я купил сканер штрих-кода за 20 долларов и настроил API Feathers.js для создания динамических PDF-файлов и конечную точку, чтобы отмечать присутствие моих гостей при сканировании.
В этом небольшом руководстве я расскажу о части создания PDF-файлов. .

Рабочий процесс

  1. Создайте настраиваемую службу Feathers, отвечающую за создание PDF-файлов.
  2. Создайте настраиваемое промежуточное ПО для отправки ответаapplication/pdf вместо JSON.
  3. Установите пакет PDFKit внутри этой службы.
  4. Установите штрих-коды с помощью пакета bwip-js.
  5. Выполнено.

1. Таможенная служба

Используя Feathers Cli, запустите feathers generate service и выберите A custom service, когда Feathers Cli запросит тип службы. Выбирайте любое имя, которое вам больше нравится, я выбрал tickets.

2. Пользовательское промежуточное ПО

По умолчанию Feathers отправляет JSON ответов. Поэтому нам нужно специальное промежуточное ПО для обработки ответов в формате PDF. Для этого измените вызов инициализации службы внизу вашего *.service.js файла (в моем случае tickets.service.js):

3. Установите PDFKit и bwip-js.

Запустите npm install — save pdfkit bwip-js. Эти пакеты будут отвечать за создание PDF-файлов и штрих-кодов в нашем приложении.

  • Импортируйте два пакета в верхней части вашего класса обслуживания (в моем случае tickets.class.js).
  • Добавьте частную функцию _generateBarcode() для создания штрих-кода, который будет добавлен в PDF-файл.
  • Добавьте еще one_generatePdf(), чтобы сгенерировать документ PDF.
  • Обновите функцию publicget(), которая получает бронирование (или любую другую службу базы данных, которую вы хотите использовать для динамического создания PDF-файлов).
  • Не забудьте добавить setup() функцию для привязки экземпляра приложения к классу службы, чтобы мы действительно могли вызывать другие службы Feather.

Вот полный курс:

Попробуй это

Откройте конечную точку GET в вашем браузере/tickets/[bookingId]. Там вас должен ждать блестящий PDF-файл.

Большое спасибо замечательной команде Feathers.