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/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