Полезные пакеты, утилиты в Node.js

Oct 28, 2018

Как открыть пакет в браузере посредством консоли?

npm repo name_module

Как открыть домашнюю страницу пакета в браузере?

npm home name_module

Полезные пакеты, утилиты node.js

  • assert — используется в проверочных целях для тестирования
  • child_process — функции для запуска внешних программ (Node и др.)
  • cluster — позволяет использовать несколько процессов для повышения производительности вашего приложения
  • crypto — встроенные криптографические библиотеки
  • dns — функции системы доменных имен (DNS) для преобразования сетевых имен
  • domain — позволяет группировать ввод-вывод и другие асинхронные операции для изоляции ошибок
  • events — утилиты для поддержки асинхронных событий
  • http — сервер НТТР и связанные с ним утилиты
  • https — сервер НТТРS и связанные с ним утилиты
  • net — асинхронное сетевое API на базе сокетов
  • os — утилиты операционной системы
  • path — утилиты имен и путей файловой системы
  • querystring — утилиты для анализа и создания строк запросов URL
  • readline — интерактивные утилиты ввода-вывода; в первую очередь, для программ командной строки
  • smalloc — обеспечивает явное распределение памяти для буферов
  • string_decoder — преобразование буфера в строки
  • util — полезный набор функций, встроенный в node.js, например, возможность делать промисификацию с util.promisify и т.д.
  • zlib — встроенный модуль для сжатия файлов.

fs

fs - модуль для работы с файлами.

const fs = require('fs');

request

request - библиотека для упорядочивания HTTP-вызовов; например, мы можем загрузить содержимое по url.

const request = require('request');

path

path - предоставляет утилиты для работы с путями к файлам и директориям.

const path = require('path');

mkdirp

mkdirp - утилита для рекурсивного создания каталогов.

const mkdirp = require('mkdirp');

mz

mz - данный модуль способен оборачивать Promise-ми методы встроенные в Node.js - Promisification (fz, zlib, crypto etc.)

const fs = require('mz/fs');
fs.readFile('./Index.html').then(contents => console.log(contents))
    .catch(err => console.error(err));

Асинхронность с использованием mz/fs на stackoverflow

morgan

morgan - используется для логирования

chance

chance - библиотека, при помощи которой можно генерировать случайное значение любого вида (строка, число, предложений)

if (chance.bool({likelihood: 5})) {
    this.push(null);
}

through2 и through2-parallel

  • through2 - используется для трансформации потоков
  • through2-parallel
  • - обрабатываем данные параллельно, используется для трансформации потоков

Библиотека async

Библиотека async - инструмент для управления асинхронным кодом в Node.js и js.

В библиотеке async главное правильно подобрать нужную функцию.

const async = require('async');

Последовательное выполнение определенного набора заданий - для этого подойдет функция series

series(tasks, [callback])
  • tasks - список заданий (асинхронных функций); каждая ф-я принимает cb, который вызывается после завершения задания
  • callback - необяз., функция вызывается после завершения всех заданий

node-fetch

node-fetch - используется для выполнения запросов в node, как в браузере (window.fetch), но на стороне сервера.

nvm

Узнать все доступные версии nodejs: nvm list available

npm-check

npm-check - проверяет на устаревшие, неиспользуемый и некорректные зависимости.

concurrently

concurrently - запускает несколько команд одновременно.

request-promise

request-promise - клиентские HTTP-запросы с поддержкой Promise. (использую для captcha)

formidable

formidable - модуль приспособленный для загрузки файлов.

fs-extra

fs-extra - намного больше возможностей по сравнению с нативным пакетом Node.js - fs.

lowdb

lowdb - небольшая локальная JSON база данных. Может работать как на стороне сервера, так и на стороне клиента (localstorage).

const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');
const adapter = new FileSync('./db.json');
const db = low(adapter);

app.get('/', (req, res) => {
    const users = db.get('users').value();

//.....

app.post('/', (req, res) => {
    const {
        firstName,
        lastName = null,
        phone = null,
        email = null,
        memberSince} = req.body;
    if (!firstName) throw new HttpError('Missing required parameter - firstName', 400);
    db.get('users')
        .push({firstName, lastName, phone, email, memberSince})
        .write();
    const peopleLength = db.get('users').value().length;
    res.header('Location', `http://localhost:3000/api/v1.0/users/${peopleLength}`);
    res.status(201).send('User added');
});

nconf

nconf - храним данные в json-файле. Есть метод set при помощи которого задаем переменные, а также save - для того чтобы сохранить конфигурационный объект.

const nconf = require('nconf');
const path = require('path');

module.exports = function () {
    return nconf
        .argv()
        .env()
        .file({file: path.join(__dirname, 'my-db.json')});
}
const db = require('../models/db')();

//...
db.set(fields.name, dir);
db.save();

nodemon

nodemon - в develop режиме необходимо перезагружать сервер - для этого используется nodemon. nodemon следит за нашим окружением и в случае каких-либо изменений перезагружает сервер.

Сайты - около Node.js

npms.io

npms.io - сайт, где можно найти и проверить на качество npm-пакеты

npmtrends.com

npmtrends.com - сайт, где можно отследить тренды (популярность/число скачиваний) пакетов npm

Добавить комментарий