У априлу 2022. издато је НодеЈС издање Ноде в18. Ажурирање Ноде в18 је једно од најишчекиванијих ажурирања од Ноде в14, које је додало асинхронизовани локални АПИ за складиштење, системски интерфејс за веб склапање (ВАСИ) и подршку за ЕЦМАСцрипт модуле.
Надоградња в18 додаје разна побољшања НодеЈС-у, укључујући глобално омогућен АПИ за преузимање по подразумеваној вредности, подршку за АПИ за веб стрим и основни модул за покретање тестова. Овде покривамо већину значајних промена у НодеЈС-у у в18.
1. Фетцх АПИ
АПИ за преузимање обезбеђује интерфејс за приступ и манипулацију ХТТП захтевима и одговорима. Пре НодеЈС в18, ХТТП захтеви направљени помоћу НодеЈС захтевали су библиотеке трећих страна као што су акиос и ноде-фетцх или компликовано хттп или хттпс пакет.
НодеЈС в18 подразумевано чини АПИ за преузимање доступним у глобалном опсегу. Глобални АПИ за преузимање елиминише потребу за библиотекама трећих страна као што су акиос и опширни код повезан са хттпс пакет приликом преузимања ресурса асинхроно преко мреже.
Ево примера употребе АПИ-ја:
конст гетДата = асинцфункција () {
покушати {
конст рес = чекати дохвати("хттпс://example.com/users");
конст подаци = чекати рес.јсон();
конзола.лог (подаци);
} улов (грешка) {
конзола.Пријава(`Нешто је пошло по злу, ${еррор}`);
}
};
гетДата();
Тхе гетДата функција изнад шаље а ДОБИТИ захтев за преузимање ресурса из " https://example.com/users". АПИ за преузимање такође узима опциони други параметар, објекат опција. Објекти опција треба да садрже детаље о захтеву. На пример:
конст усерДата = {
име: "Јон Снов",
године: 25,
пол: "М",
};
конст постДата = асинцфункција (података) {
покушати {
конст рес = чекати дохвати("хттпс://екампле.цом/усерс", {
метод: "ПОШТА",
тело: ЈСОН.стрингифи (подаци),
});
конст респонсеДата = чекати рес.јсон();
конзола.Пријава(
`Захтев је успео, ево детаља: ${респонсеДата}`
);
} улов (грешка) {
конзола.Пријава(`Захтев је био неуспешан, ево детаља: ${еррор}`);
}
};
постДата (усерДата);
Иако је АПИ за преузимање још увек експериментални, требало би да добро функционише за већину корисника.
2. Подршка за АПИ за веб стримове
Размислите о мултимедијалним апликацијама или апликацијама у реалном времену; ово је основни случај употребе АПИ-ја за веб стримове. АПИ за веб стримове је скуп интерфејса који омогућавају програмско рашчлањивање великог ресурса примљеног преко мреже на мале делове, а затим га обрађује мало по мало.
Пример тока је тело одговора које је вратио успешни донети захтев. Тело одговора је типа РеадаблеСтреам.
НодеЈС в18 излаже ан експериментални имплементација АПИ-ја за веб стримове. Са овим ажурирањем, АПИ-ји за веб ток су сада доступни и на клијенту и на серверу, чинећи развој једноставнијим.
Можете пронаћи листу тренутно подржаних стримова у званичне белешке о издању.
3. Тхе Тест Руннер Модуле
У ранијим верзијама НодеЈС-а, тестирање без библиотека трећих страна је обављено са уграђеним тврдити библиотека.
Тхе тврдити библиотека је олакшала писање једноставних тестова, али је имала значајна ограничења која су отежавала рад са више пакета тестова. Ова ограничења подстакла су потребу да библиотеке трећих страна као што је Јест покрећу напредније тестове.
НодеЈС в18 елиминише потребу за библиотекама трећих страна увођењем НодеЈС-овог сопственог основног модула за тестирање. Покретач тестова подржава функције као што су подтестови, прескакање тестова, тестови повратног позива, итд., слично као Јест.
Да бисте користили тест тркач, морате да увезете тврдити из тврдити и тест из чвор: тест. Обратите пажњу на "чвор:" префикс; то је Нодеов нови протокол који разликује пакете језгра чвора од пакета које креирају корисници.
консттврдити = захтевају("тврдити");
конст тест = захтевају("чвор: тест");
Ево примера једноставног теста помоћу модула тест руннер:
тест("Проверите да ли су низови исти", (т) => {
ассерт.стрицтЕкуал("тест", "тест");
});
Резултати теста које је приказао испитаник ће бити укључени ТАП (Тест Анитхинг Протоцол) формату. Имајте на уму да је ова функција и даље експериментална и да се може променити у било ком тренутку.
4. Друге надоградње и поправке
Ноде в18 ажурирање такође садржи ажурирање в8 мотора на верзију 10.1. В8 мотор је ЈаваСцрипт рунтиме који НодеЈС користи за извршавање ЈаваСцрипт-а.
Ажурирање в8 чини методе низафиндЛаст и финдЛастИндек доступно у НодеЈС-у и побољшава перформансе поља класе и метода приватних класа.
НодеЈС такође излаже следеће АПИ-је у глобалном опсегу у надоградњи Ноде в18:
- Блоб
- БродцастЦханнел
Надоградња на Ноде в18
Користећи Ноде в18, можете тестирати целу апликацију без спољних библиотека, асинхроно преузимати ресурсе без спољних библиотека и имати омогућене веб стримове на вашем серверу.
Међутим, вреди напоменути да су ове функције и даље експерименталне и да се могу променити у било ком тренутку. Можете надоградити на НодеЈС в18 користећи званична веза за преузимање.