В этой статье мы собираемся создать счет в Node.js самым простым способом. Мы будем использовать библиотеку NPM EasyInvoice.

Обратите внимание, что библиотека EasyInvoice также доступна для:
- Python через PyPi / PIP
- PHP через Packagist / Composer
- JavaScript (браузер) также через NPM
1. Предпосылки
Перед подготовкой убедитесь, что в вашей операционной системе установлен Node.js.
2. Создайте новый проект Node.js.
Начните новый проект Node.js в своем любимом редакторе. Я предпочитаю, чтобы этот процесс был максимально экономичным. Для работы нашего примера нам нужны только два файла в одной папке, а именно index.js и package.json:

Обычно я создаю пустой файл index.js вручную. Далее мы собираемся создать файл package.json. Для этого выполните следующую команду, используя предпочитаемый интерфейс командной строки (CLI) в том же каталоге, что и ваш файл index.js (с этого момента он называется корневым каталогом проекта):
npm init
Вам будет предложено ввести некоторые значения, представленные этой командой, например «имя пакета». Заполните их как хотите. Для этой демонстрации я просто нажму «Enter» на всех из них, чтобы оставить настройки по умолчанию.
Теперь у нас есть два файла, и мы можем продолжить установку EasyInvoice в наш проект.
3. Установите EasyInvoice в наш проект.
Далее мы собираемся установить пакет EasyInvoice NPM в наш проект, выполнив следующую команду в корневом каталоге нашего проекта:
npm install easyinvoice --save
В случае успеха вы заметите, что в ваш проект были добавлены папка и файл. Папка называется node_modules, а файл package-lock.json. Вы можете игнорировать их, пока они необходимы NPM для правильной работы нашей библиотеки.
Теперь ваше файловое дерево проекта должно выглядеть так:

Когда вы откроете файл package.json, вы должны увидеть EasyInvoice в разделе зависимостей. Вот так:
4. Создадим счет!
Теперь давайте откроем наш файл index.js и добавим код:
Теперь лично я большой поклонник библиотеки NPM Async, поскольку она делает наш код более читабельным. К счастью для нас, EasyInvoice поддерживает Async! Пожалуйста, ознакомьтесь с документацией EasyInvoice за примерами использования Async.
Возможно, вы заметили, что в нашем примере кода мы оставили объект данных пустым. Таким образом, запуск приведенного выше кода должен предоставить нам базовый пустой счет. Давайте сделаем это сначала, запустив наш файл index.js с помощью NodeJS в корне каталога нашего проекта с помощью интерфейса командной строки:
node index.js
Теперь, если все сработало так, как должно, вы найдете файл, который появился в вашем проекте с именем invoice.pdf:

Идите и откройте файл. Посмотри! Вы заметите, что наш PDF-файл счета все еще пуст. Счет-фактура должна выглядеть примерно так:

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

Вот и все! Вы создали красивую фактуру с минимальными усилиями.
Заключительные примечания
Были ли у вас проблемы с тем, чтобы приведенный выше пример работал? Не стоит беспокоиться! Мы загрузили полностью рабочий пример кода на Github. Щелкните здесь, чтобы перейти к нашему образцу репо. Обязательно следуйте инструкциям в файле README.md.
Если этот пост вам чем-то помог, поставьте звезду Easy Invoice on Github за отличную работу.
Больше контента на plainenglish.io