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.Використовується зазвичай у фреймворках, таких як Expresspdf-lib- бібліотека для створення та редагування файлів у форматі PDFpg- драйвер для роботи з PostgreSQL базами данихpm2- процес-менеджер для Node.js додатків, який забезпечує зручність управління та моніторингу процесів додаткуpuppeteer- бібліотека, яка надає інтерфейс для контролю та автоматизації браузера Chrome за допомогою коду JavaScript або Node.js. Дозволяє виконувати різні завдання, такі як збір даних, тестування, аналіз вмісту сторінок, створення знімків екрана та багато іншого.logger- для логування подій, інформації та помилок.@grpc/proto-loader- Пакет утиліт для завантаження .protoфайлів для використання з gRPC@iamtraction/google-translate*@mapbox/sphericalmercatorapache-cryptaws-sdkbee-queuechild-process-promiseexpress
Логи пишуться в дерикторію node/log в форматі elastic.
Метріки пишуться в redis.
Перегляд логів та метрік через адмін в інтерфейсі /logger /logger-file або через файлову систему.
???+ example
```js
logger.file
logger.metric
```
qrcoderedis
Використовується для кешування значень, 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-promisesasssendsocket.iosphericalmercatorswagger-ui-expressundicixlsxxml-jsxml2jsyamljs
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/fontkitautoprefixerbody-parserconnect-redisconvert-excel-to-jsoncsv-parserencoding-japaneseexpress-cache-response-directiveexpress-sessioninspector-apijest-junitjsdoc-vuejsjson2csvjson2xlslog4jsmarkdown-iticonv-litenode-excel-exportnode-html-parsernode-popplernode-stream-zipnode-telegram-bot-apinodemailerotplibparse-kmlpassport-custompassport-localpromised-handlebarsnode-sshqr-imagerequire-reloadtiny-async-pooluidxls-to-jsonxmldomyaml