всем привет, в этой статье мы поговорим о некоторых особенностях node js версии 18 и версии 19.

FindLast и FindLastIndex

Эти методы массива аналогичны find и findIndex , функционально идентичны find и findIndex. Но есть некоторая разница, эти методы ищут элемент в массиве с конца.

const array = [{ value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }];

array.find(n => n.value % 2 === 1); // { value: 1 }
array.findIndex(n => n.value % 2 === 1); // 0

// find
array.findLast(n => n.value % 2 === 1); // { value: 3 }

// findIndex
array.findLastIndex(n => n.value % 2 === 1); // 2
array.findLastIndex(n => n.value === 42); // -1

--watch flag

Я думаю, что этот флаг очень важен. нам больше не нужен nodemon, если мы можем использовать этот флаг. Запуск приложения Node.js в режиме наблюдения автоматически перезапускает процесс при изменении импортированного файла.

node --watch app.js

Встроенный API выборки

До Node.js v18 вы не могли использовать Fetch API в Node.js для запроса данных из API. Вам приходилось устанавливать node-fetch, axios или другую стороннюю библиотеку. С node js v18 нам не нужны никакие сторонние пакеты для выборки.

async function fetchData() {
  const response = await fetch(
    "https://random-data-api.com/api/name/random_name"
  );
  if (response.ok) {
    const data = await response.json();
    console.log(data);
  }
}

fetchData();

Основные модули только с префиксами

Новый способ «импорта» модулей, который использует префикс «node:», который сразу делает очевидным, что модули взяты из ядра Node.js.

Встроенный модуль запуска тестов

С выпуском Node.js v18 средство запуска тестов теперь включено в Node.js, и к нему можно получить доступ с помощью:

const test = require('node:test')
const assert=require('node:assert')
test("My Test", async (t) => {
    await t.test("It should equal two numbers", () => {
      assert.equal(3, 4);
    });
    await t.test("It should not equal two numbers", () => {
      assert.notEqual(2, 1);
    });
  });

//node --watch yourfile.js

детали модуля assert находятся здесь.

Двигатель V8 обновлен до v10.1

Node.js работает с движком V8 из браузера с открытым исходным кодом Chromium. Этот движок был обновлен до версии 10.1, которая является частью недавнего обновления Chromium 101.

Тайм-ауты HTTP

Тайм-ауты http.server изменились:

  • headersTimeout (время, отведенное для анализа заголовка HTTP-запроса) установлено на 60000 миллисекунд (60 секунд).
  • requestTimeout (время ожидания, используемое для HTTP-запроса) по умолчанию установлено на 300000 миллисекунд (5 минут).

для получения дополнительной информации нажмите здесь.

Мой канал на Youtube.

Всем хорошей работы.