{"id":81559,"date":"2020-05-14T19:42:16","date_gmt":"2020-05-14T17:42:16","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0"},"modified":"2020-05-14T19:42:16","modified_gmt":"2020-05-14T17:42:16","slug":"avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","title":{"rendered":"Autor Node.js przedstawi\u0142 zabezpieczon\u0105 platform\u0119 JavaScript Deno 1.0.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po dw\u00f3ch latach prac rozwojowych <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/v1\">zaprezentowano<\/a><\/noindex> pierwsze znacz\u0105ce wydanie <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/\">Deno 1.0<\/a><\/noindex>, platforma do zdalnego uruchamiania aplikacji napisanych w j\u0119zykach JavaScript i TypeScript, kt\u00f3ra mo\u017ce by\u0107 u\u017cywana do tworzenia serwerowych obs\u0142ugiwaczy. Platform\u0119 rozwija Ryan Dahl (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Ryan_Dahl\">Ryan Dahl<\/a><\/noindex>), tw\u00f3rca Node.js. Podobnie jak w Node.js, w Deno u\u017cywany jest silnik JavaScript, <noindex><a rel=\"nofollow\" href=\"https:\/\/v8.dev\/\">V8<\/a><\/noindex>, kt\u00f3ry r\u00f3wnie\u017c jest stosowany w przegl\u0105darkach opartych na Chromium. Deno nie jest jednak odga\u0142\u0119zieniem Node.js, lecz nowym projektem stworzonym od podstaw. Kod projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/denoland\/deno\">rozpowszechniany<\/a><\/noindex> jest licencjonowany na podstawie MIT. Wersje <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/denoland\/deno\/releases\/tag\/v1.0.0\">przygotowano<\/a><\/noindex> s\u0105 dost\u0119pne dla system\u00f3w Linux, Windows i macOS.<\/p>\n<p>Znacz\u0105cy numer wersji wi\u0105\u017ce si\u0119 z stabilizacj\u0105 API w przestrzeni nazw Deno, kt\u00f3re odpowiadaj\u0105 za interakcj\u0119 aplikacji z systemem operacyjnym. Interfejsy, kt\u00f3re na razie <noindex><a rel=\"nofollow\" href=\"https:\/\/doc.deno.land\/https\/raw.githubusercontent.com\/denoland\/deno\/master\/cli\/js\/lib.deno.unstable.d.ts\">nie s\u0105 stabilne<\/a><\/noindex>, domy\u015blnie s\u0105 ukryte i dost\u0119pne tylko w trybie &#171;&#8212;unstable&#187;. W miar\u0119 pojawiania si\u0119 nowych wersji, podobne API b\u0119d\u0105 stopniowo przenoszone do kategorii stabilnych. API w globalnej przestrzeni nazw, obejmuj\u0105ce takie og\u00f3lne funkcje jak setTimeout() i fetch(), w miar\u0119 mo\u017cliwo\u015bci zbli\u017ca si\u0119 do API standardowych przegl\u0105darek internetowych i rozwija si\u0119 zgodnie z standardami Web dla przegl\u0105darek. Udost\u0119pniane API Rust, kt\u00f3re jest bezpo\u015brednio stosowane w kodzie platformy, a tak\u017ce interfejs do tworzenia wtyczek dla \u015brodowiska Deno, nie s\u0105 jeszcze ustabilizowane i nadal si\u0119 rozwijaj\u0105.<\/p>\n<p>Kluczowymi motywami stworzenia nowej platformy JavaScript by\u0142o pragnienie wyeliminowania koncepcyjnych b\u0142\u0119d\u00f3w, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=M3BM9TB-8yA\">pope\u0142nionych<\/a><\/noindex> w architekturze Node.js oraz zapewnienie u\u017cytkownikom bardziej bezpiecznego \u015brodowiska. Aby zwi\u0119kszy\u0107 bezpiecze\u0144stwo, obudowa wok\u00f3\u0142 silnika V8 zosta\u0142a napisana w j\u0119zyku Rust, co pozwala unikn\u0105\u0107 wielu luk bezpiecze\u0144stwa wynikaj\u0105cych z niskopoziomowego zarz\u0105dzania pami\u0119ci\u0105, takich jak dost\u0119p do obszaru pami\u0119ci po jej zwolnieniu, dereferencjonowanie wska\u017anik\u00f3w zerowych oraz przekroczenie granic bufora. Do obs\u0142ugi \u017c\u0105da\u0144 w trybie nieblokuj\u0105cym wykorzystywana jest platforma <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tokio-rs\/tokio\">Tokio<\/a><\/noindex>, r\u00f3wnie\u017c napisana w j\u0119zyku Rust. Tokio umo\u017cliwia tworzenie aplikacji o wysokiej wydajno\u015bci opartych na architekturze zdarzeniowej (Event-driven), obs\u0142uguj\u0105cych wielow\u0105tkowo\u015b\u0107 i przetwarzanie \u017c\u0105da\u0144 sieciowych w trybie asynchronicznym.<\/p>\n<p>Podstawowe <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/manual\">cechy<\/a><\/noindex> Deno:\n<\/p>\n<ul>\n<li class=\"l\"> Skoncentrowanie na bezpiecze\u0144stwie w konfiguracji domy\u015blnej. Dost\u0119p do plik\u00f3w, mo\u017cliwo\u015bci sieciowe i dost\u0119p do zmiennych \u015brodowiskowych s\u0105 domy\u015blnie zablokowane i wymagaj\u0105 jawnego w\u0142\u0105czenia. Aplikacje domy\u015blnie uruchamiane s\u0105 w izolowanych \u015brodowiskach sandbox i nie mog\u0105 uzyska\u0107 dost\u0119pu do mo\u017cliwo\u015bci systemowych bez przyznania jawnych uprawnie\u0144;\n<\/li>\n<li class=\"l\"> Wbudowane wsparcie dla j\u0119zyka TypeScript opr\u00f3cz JavaScript. Do sprawdzania typ\u00f3w i generowania JavaScript u\u017cywany jest wewn\u0119trzny kompilator TypeScript, co prowadzi do spadku wydajno\u015bci w por\u00f3wnaniu do analizy JavaScript w V8. W przysz\u0142o\u015bci planowane jest opracowanie w\u0142asnej implementacji systemu sprawdzania typ\u00f3w TypeScript, co pozwoli znacznie zwi\u0119kszy\u0107 wydajno\u015b\u0107 przetwarzania TypeScript.\n<\/li>\n<li class=\"l\"> Runtime jest dostarczany w formie jednego samodzielnego pliku wykonywalnego (&#171;deno&#187;). Aby uruchomi\u0107 aplikacje za pomoc\u0105 Deno, wystarczy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/denoland\/deno\/releases\">pobra\u0107<\/a><\/noindex> dla swojej platformy jeden plik wykonywalny o rozmiarze oko\u0142o 20 MB, nie maj\u0105cy zewn\u0119trznych zale\u017cno\u015bci i nie wymagaj\u0105cy specjalnej instalacji w systemie. Przy tym Deno nie jest monolityczn\u0105 aplikacj\u0105, a stanowi zbi\u00f3r pakiet\u00f3w crate w Rust (<noindex><a rel=\"nofollow\" href=\"https:\/\/crates.io\/crates\/deno_core\">deno_core<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/crates.io\/crates\/rusty_v8\">rusty_v8<\/a><\/noindex>), kt\u00f3re mog\u0105 by\u0107 u\u017cywane oddzielnie;\n<\/li>\n<li class=\"l\"> Podczas uruchamiania programu oraz do \u0142adowania modu\u0142\u00f3w mo\u017cna korzysta\u0107 z adresacji przez URL. Na przyk\u0142ad, aby uruchomi\u0107 program welcome.js, mo\u017cna u\u017cy\u0107 polecenia \u201edeno https:\/\/deno.land\/std\/examples\/welcome.js\u201d. Kod z zewn\u0119trznych \u017ar\u00f3de\u0142 jest pobierany i buforowany w lokalnym systemie, lecz nigdy nie jest automatycznie aktualizowany (aby go zaktualizowa\u0107, nale\u017cy jawnie uruchomi\u0107 aplikacj\u0119 z flag\u0105 \u201e\u2014reload\u201d);\n<\/li>\n<li class=\"l\"> Skuteczna obs\u0142uga \u017c\u0105da\u0144 sieciowych HTTP w aplikacjach, platforma jest zaprojektowana do tworzenia wysokowydajnych aplikacji sieciowych;\n<\/li>\n<li class=\"l\"> Mo\u017cliwo\u015b\u0107 tworzenia uniwersalnych aplikacji webowych, kt\u00f3re mog\u0105 dzia\u0142a\u0107 zar\u00f3wno w Deno, jak i w zwyk\u0142ej przegl\u0105darce internetowej;\n<li class=\"l\"> Obecno\u015b\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/std\">standardowego zestawu modu\u0142\u00f3w<\/a><\/noindex>, kt\u00f3rych u\u017cycie nie wymaga powi\u0105zania z zewn\u0119trznymi zale\u017cno\u015bciami. Modu\u0142y ze standardowej kolekcji przesz\u0142y dodatkowy audyt i weryfikacj\u0119 zgodno\u015bci;\n<\/li>\n<li class=\"l\"> Opr\u00f3cz runtime, platforma Deno pe\u0142ni r\u00f3wnie\u017c rol\u0119 mened\u017cera pakiet\u00f3w i umo\u017cliwia odnoszenie si\u0119 do modu\u0142\u00f3w w kodzie za pomoc\u0105 URL. Na przyk\u0142ad, aby za\u0142adowa\u0107 modu\u0142, mo\u017cna w kodzie wskaza\u0107 &#171;import * as log from &#171;https:\/\/deno.land\/std\/log\/mod.ts&#187;. Pliki za\u0142adowane z zewn\u0119trznych serwer\u00f3w przez URL s\u0105 buforowane. Powi\u0105zanie z wersjami modu\u0142\u00f3w okre\u015bla si\u0119 poprzez podawanie numer\u00f3w wersji w URL, na przyk\u0142ad &#171;https:\/\/unpkg.com\/liltest@0.0.5\/dist\/liltest.js&#187;;\n<\/li>\n<li class=\"l\"> W sk\u0142ad systemu wchodzi r\u00f3wnie\u017c narz\u0119dzie do inspekcji zale\u017cno\u015bci (polecenie \u201edeno info\u201d) oraz narz\u0119dzie do formatowania kodu (deno fmt);\n<\/li>\n<li class=\"l\"> Wszystkie skrypty aplikacji mog\u0105 zosta\u0107 po\u0142\u0105czone w jeden plik JavaScript.\n<\/li>\n<\/ul>\n<p> R\u00f3\u017cnice w stosunku do Node.js:\n<\/p>\n<ul>\n<li class=\"l\"> Deno nie korzysta z mened\u017cera pakiet\u00f3w npm<br \/>\n i nie jest powi\u0105zany z repozytoriami, adresowanie modu\u0142\u00f3w odbywa si\u0119 za pomoc\u0105 URL lub \u015bcie\u017cki plik\u00f3w, a same modu\u0142y mog\u0105 by\u0107 umieszczone na dowolnej stronie;\n<\/li>\n<li class=\"l\"> W Deno nie u\u017cywa si\u0119 &#171;package.json&#187; do definiowania modu\u0142\u00f3w;\n<\/li>\n<li class=\"l\"> R\u00f3\u017cnice w API, wszystkie asynchroniczne operacje w Deno zwracaj\u0105 obietnic\u0119;\n<\/li>\n<li class=\"l\"> Deno wymaga jawnego okre\u015blenia wszystkich potrzebnych uprawnie\u0144 dla plik\u00f3w, sieci i zmiennych \u015brodowiskowych;\n<\/li>\n<li class=\"l\"> Wszystkie b\u0142\u0119dy, kt\u00f3re nie maj\u0105 obs\u0142ugi, prowadz\u0105 do zako\u0144czenia dzia\u0142ania aplikacji;\n<\/li>\n<li class=\"l\"> W Deno stosuje si\u0119 system modu\u0142\u00f3w ECMAScript i nie wspiera require();\n<li class=\"l\"> Wbudowany serwer HTTP Deno napisany jest w TypeScript i dzia\u0142a na natywnych gniazdach TCP, podczas gdy serwer HTTP Node.js napisany jest w C i oferuje powi\u0105zania dla JavaScript. Programi\u015bci Deno skoncentrowali wysi\u0142ki na optymalizacji ca\u0142ego poziomu gniazd TCP oraz dostarczeniu bardziej og\u00f3lnego interfejsu. Serwer HTTP Deno zapewnia mniejsz\u0105 przepustowo\u015b\u0107, ale gwarantuje przewidywalnie niskie op\u00f3\u017anienia. Na przyk\u0142ad w te\u015bcie prosta aplikacja oparta na serwerze HTTP Deno mog\u0142a obs\u0142u\u017cy\u0107 25 tysi\u0119cy \u017c\u0105da\u0144 na sekund\u0119 z maksymalnym op\u00f3\u017anieniem wynosz\u0105cym 1,3 milisekundy. W Node.js podobna aplikacja obs\u0142u\u017cy\u0142a 34 tysi\u0105ce \u017c\u0105da\u0144 na sekund\u0119, ale op\u00f3\u017anienia waha\u0142y si\u0119 od 2 do 300 milisekund.\n<li class=\"l\"> Deno nie jest kompatybilne z pakietami dla Node.js (NPM), ale rozwija si\u0119 oddzielnie <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/std\/node\/\">warstwa<\/a><\/noindex> dla zgodno\u015bci ze standardow\u0105 bibliotek\u0105 Node.js, w miar\u0119 jej rozwoju w Deno b\u0119dzie mog\u0142o dzia\u0142a\u0107 coraz wi\u0119cej aplikacji napisanych dla Node.js.\n<\/li>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>\u0179r\u00f3d\u0142o: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52947\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 JavaScript \u0438 TypeScript, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0420\u0430\u0439\u0430\u043d \u0414\u0430\u043b\u044c (Ryan Dahl), \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c Node.js. \u041a\u0430\u043a \u0438 \u0432 Node.js \u0432 Deno \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f JavaScript-\u0434\u0432\u0438\u0436\u043e\u043a V8, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Chromium. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-81559","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0432\u0442\u043e\u0440 Node.js \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u0443\u044e JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Deno 1.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-14T17:42:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-14T17:42:16+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Tw\u00f3rca Node.js przedstawi\u0142 zabezpieczon\u0105 platform\u0119 JavaScript Deno 1.0 | ProHoster","description":"Po dw\u00f3ch latach rozwoju zaprezentowano pierwsze znacz\u0105ce wydanie Deno 1.0.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0432\u0442\u043e\u0440 Node.js \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u0443\u044e JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Deno 1.0 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-14T17:42:16+00:00","article:modified_time":"2020-05-14T17:42:16+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81559","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:56:23","updated":"2022-09-29 01:12:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/81559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=81559"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/81559\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=81559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=81559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=81559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}