У узла больше функциональных возможностей, чем у JavaScript в веб-браузере. Давайте изучим их здесь!

1. OS

JavaScript в веб-браузере не может получить информацию об операционной системе (ОС), но узел может

  • os.type (): показывает тип операционной системы.
  • os.uptime (): время после загрузки ОС.
  • os.hostname (): показывает имя компьютера.
  • os.release (): показывает версию ОС.
  • os.homedir (): показывает путь к домашнему каталогу
  • os.freemem (): показывает доступную оперативную память.
  • os.totalmem (): показать весь объем памяти

2. Путь

Это помогает управлять папкой и путем к файлу

  • Модуль path очень полезен, потому что каждая операционная система имеет свой разделитель пути.
  • Тип Windows и тип POSIX
  • Тип окна: разделены знаком ₩ (т. е. C: ₩ Пользователи ₩ gplee).
  • Тип POSIX используется в операционных системах на основе Unix, таких как macOS и Linux.
  • Тип POSIX: разделены / (т. е. / home / gplee).
  • __filename, __dirname представляет текущий файл и путь к текущей папке соответственно.
  • path: sep: разделитель пути (например, Windows: \, POSIX: /)
  • path.delimiter: разделитель переменных env (например, Windows: ;, POSIX :)
  • path.dirname (путь): путь к файлу
  • path.extname (путь): расширение файла.
  • path.basename (путь, расширение): имя файла.
  • path.parse (путь): разделите путь к файлу на root, dir, base, ext, name
  • path.format (object): объект path.parse () к пути к файлу
  • path.noramlize (путь): удалить дубликаты / \
  • path.isAbsolute (path): return boolean сообщает, является ли путь к файлу абсолютным или относительным.
  • path.join (path,…): объединить в путь
  • path.resolve (path,…): объединить в путь
difference between path.join & path.resolve
--
- path.resolve : absolute path
- path.join : relative path
path.join('/a', '/b', 'c'); // /a/b/c
path.resolve('/a', '/b', 'c'); // /b/c

3. URL

Помогает манипулировать интернет-адресом (url)

  • Это два типа манипулирования URL-адресом: 1) URL-адрес WHATWG 2) URL-адрес традиционного узла.

  • url.parse (адрес): отдельный URL
  • url.format (объект): заново собрать URL

4. querystring

преобразовать searchParams URL в объект

  • querystring.parse (query): запрос URL-адреса в объект JavaScript.
  • querystring.stringify (объект): запрос объекта к строке

5. крипто

1. Одностороннее шифрование

  • Шифрование, которое невозможно расшифровать
  • Например, пароль пользователя не нужно расшифровывать (просто сравните зашифрованный пароль в базе данных и ввод пользователя при входе в систему).

›Хеш

  • createHash (алгоритм): создание алгоритма хеширования для использования. md5, sha1, sha256, sha512 доступны
  • update (строка): строка для шифрования
  • дайджест (кодировка): алгоритм кодирования. base64, шестнадцатеричный, latin1; base64 имеет самую короткую длину строки результата

›Pbkdf2 (нить + соль)

  • создать соль с помощью метода randomBytes
  • Методы pdkdf2 () принимают 1) строку для шифрования «пароля» 2) соль 3) количество вызовов (повторение) 4) алгоритм хеширования в качестве параметров
  • Другими словами, описанный выше метод шифрует текст пароль 10 тысяч раз с помощью хеш-алгоритма sha512.
  • 10k раз занимает всего 1 с

2. Двустороннее шифрование.

  • Шифрование можно расшифровать
  • Ключ используется для шифрования и дешифрования (тот же ключ)

›Шифр

  • crypto.createCipher (алгоритм, ключ): используемый алгоритм & ключ
  • cipher.update (строка, кодировка, кодировка вывода): мы используем кодировку utf8 и используем base64 для шифрования.
  • cipher.final (кодировка вывода): шифрование завершает заданную кодировку вывода base64.
  • crypto.createDecipher (алгоритм, ключ): используется для расшифровки (используется тот же алгоритм и ключ шифрования)
  • decipher.update (строка, кодировка, кодировка вывода): то же, что и шифрование.
  • decipher.final (кодировка вывода): то же, что и шифрование.

6. Утилита

  • Модуль util имеет все служебные функции
  • Многие API добавляются и удаляются по мере того, как они устаревают.
  • util.deprecate: эта функция сообщает, что функция устарела.
  • util.promisify: измените шаблон обратного вызова на шаблон обещания. async / await также