Skip to main content

NPM API

npm модулі діляться на 2 категорії:

  • Native / Нативні - не потрібно встановлювати
  • Сторонні - потрібно встановлювати npm i і відмітка про них є в файлі package.json
//підключення нативного модуля
require('path')

//підключення сторонього модуля в проекті Node
require('fs-extra')

//підключення сторонього модуля в іншому проекті
funcs.requireNodeModule('fs-extra')

Native Module

  • fs(File System) - робота з файловою системою
const fs = require('fs');

// Прочитати вміст файлу
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});

// Записати дані в файл
fs.writeFile('newfile.txt', 'Привіт', 'utf8', (err) => {
if (err) throw err;
console.log('Файл було записано.');
});
  • path - надає утиліти для роботи з шляхами файлів
const path = require('path');

const fullPath = path.join(__dirname, 'files', 'example.txt');
console.log(fullPath);
  • crypto - надає криптографічні функції
const crypto = require('crypto');

const hash = crypto.createHash('sha256');
hash.update('Привіт');
console.log('Хеш:', hash.digest('hex'));
  • os - надає інформацію про операційну систему
const os = require('os');

console.log('Платформа ОС:', os.platform());
console.log('Архітектура ОС:', os.arch());
console.log('Вільна пам''ять:', os.freemem());
  • http - дозволяє створювати HTTP-сервери та відправляти HTTP-запити
const http = require('http');

const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Привіт');
});

server.listen(3000, '127.0.0.1', () => {});

NPM Module

  • fs-extra - робота з файлами. Є розширенням модуля fs і надає додаткові функції для роботи з файловою системою. Він дозволяє виконувати операції, такі як копіювання, видалення та інші, з меншою кількістю коду. документація
const fs = require('fs-extra');

// копіювання папки
fs.copySync('джерело', 'призначення');
  • extract-zip - надає інструменти для розпакування ZIP-архівів
  • fetch - надає реалізацію функції fetch для використання
  • got - забезпечує зручний і простий інтерфейс для виконання HTTP-запитів.
  • ip - дозволяє отримувати інформацію про IP-адресу та мережеві інтерфейси на сервері.
  • jest-html-reporter - модуль для Jest, який дозволяє створювати звіти у форматі HTML після виконання тестів
  • passport - middleware для аутентифікації в Node.js.Використовується зазвичай у фреймворках, таких як Express
  • pdf-lib - бібліотека для створення та редагування файлів у форматі PDF
  • pg - драйвер для роботи з PostgreSQL базами даних
  • pm2 - процес-менеджер для Node.js додатків, який забезпечує зручність управління та моніторингу процесів додатку
  • puppeteer - бібліотека, яка надає інтерфейс для контролю та автоматизації браузера Chrome за допомогою коду JavaScript або Node.js. Дозволяє виконувати різні завдання, такі як збір даних, тестування, аналіз вмісту сторінок, створення знімків екрана та багато іншого.
  • logger - для логування подій, інформації та помилок.
  • @grpc/proto-loader - Пакет утиліт для завантаження .protoфайлів для використання з gRPC @iamtraction/google-translate *@mapbox/sphericalmercator
  • apache-crypt
  • aws-sdk
  • bee-queue
  • child-process-promise
  • express

Логи пишуться в дерикторію node/log в форматі elastic.

Метріки пишуться в redis.

Перегляд логів та метрік через адмін в інтерфейсі /logger /logger-file або через файлову систему.

???+ example

```js
logger.file
logger.metric
```
  • qrcode
  • redis

Використовується для кешування значень, fulltextsearch, select, session, nearest object, pub/sub, once exec Документація і всі команди - https://redis.io/commands/

// огортаються
const data = await rclient.getAsync()

Бази даних:

  • rclient - кеш - очищається що години
  • rclient1 - селекти - очищається що дня
  • rclient2 - інші дані - очищається
  • rclient5 - інші дані
  • rclient10 - сесії

???+ example "Redis Example"

```js
// строкові дані
const data = await rclient.getAsync()

// hset - масиви
const data = await rclient.getAsync()
```

Команди redis-cli -

// очистка бази за номером
redis-cli -n 0 flushdb

// інформація про стан
redis-cli info
  • request-promise
  • sass
  • send
  • socket.io
  • sphericalmercator
  • swagger-ui-express
  • undici
  • xlsx
  • xml-js
  • xml2js
  • yamljs

Depreceted

Модулі, які краще не використовувати. Вони застарілі або не є актуальними.

  • request-promise -
  • md5 -

???+ example

```js
// prefer to use
const { randomUUID: uuidv4 } = require('crypto');
crypto.createHash('md5').update(data).digest('hex').substr(0, 10);

// md5 - deprecated, use crypto
const md5 = require('md5');
md5(name);
```

Useless

Модулі, які використоіуються рідко.

  • @grpc/grpc-js
  • @iamtraction/google-translate
  • @mapbox/mbtiles
  • @mapbox/togeojson
  • @ngageoint/geopackage
  • @pdf-lib/fontkit
  • autoprefixer
  • body-parser
  • connect-redis
  • convert-excel-to-json
  • csv-parser
  • encoding-japanese
  • express-cache-response-directive
  • express-session
  • inspector-api
  • jest-junit
  • jsdoc-vuejs
  • json2csv
  • json2xls
  • log4js
  • markdown-it
  • iconv-lite
  • node-excel-export
  • node-html-parser
  • node-poppler
  • node-stream-zip
  • node-telegram-bot-api
  • nodemailer
  • otplib
  • parse-kml
  • passport-custom
  • passport-local
  • promised-handlebars
  • node-ssh
  • qr-image
  • require-reload
  • tiny-async-pool
  • uid
  • xls-to-json
  • xmldom
  • yaml