{"id":107956,"date":"2023-04-19T12:48:21","date_gmt":"2023-04-19T10:48:21","guid":{"rendered":"https:\/\/prohoster.info\/?p=107956"},"modified":"2023-04-19T14:43:38","modified_gmt":"2023-04-19T12:43:38","slug":"dostupna-servernaya-javascript-platforma-node-js-20-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-servernaya-javascript-platforma-node-js-20-0","title":{"rendered":"Dostupn\u00e1 serverov\u00e1 JavaScript platforma Node.js 20.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bylo vyd\u00e1no Node.js 20.0, platforma pro prov\u00e1d\u011bn\u00ed s\u00ed\u0165ov\u00fdch aplikac\u00ed v jazyce JavaScript. Node.js 20.0 pat\u0159\u00ed do v\u011btve s dlouhodobou podporou, ale tento status bude p\u0159id\u011blen a\u017e v \u0159\u00edjnu po stabilizaci. Podpora Node.js 20.x bude zaji\u0161\u0165ov\u00e1na do 30. dubna 2026. Podpora p\u0159edchoz\u00ed LTS v\u011btve Node.js 18.x potrv\u00e1 do dubna 2025, zat\u00edmco podpora p\u0159edchoz\u00ed LTS v\u011btve 16.x skon\u010d\u00ed v z\u00e1\u0159\u00ed 2023. Podpora LTS v\u011btve 14.x bude ukon\u010dena 30. dubna, a mezi verzemi Node.js 19.x \u2014 1. \u010dervna.     <\/p>\n<p>Hlavn\u00ed vylep\u0161en\u00ed:  <\/p>\n<ul>\n<li class=\"l\"> Motore V8 byl aktualizov\u00e1n na verzi 11.3 pou\u017e\u00edvanou v Chromu 113. Mezi zm\u011bnami oproti v\u011btvi Node.js 19, kter\u00e1 pou\u017e\u00edvala motor Chromu 107, jsou funkce String.prototype.isWellFormed a toWellFormed, metody Array.prototype a TypedArray.prototype pro pr\u00e1ci s kopi\u00ed p\u0159i zm\u011bn\u00e1ch objekt\u016f Array a TypedArray, p\u0159\u00edznak 'v' v RegExp, podpora zm\u011bny velikosti ArrayBuffer a zv\u011bt\u0161en\u00ed SharedArrayBuffer a podpora kone\u010dn\u00e9 rekurze (tail-call) ve WebAssembly.\n<li class=\"l\"> \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Permission Model, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.  \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Permission Model \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0444\u043b\u0430\u0433\u0430  &#171;&#8212;experimental-permission&#187;. \u0412 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u044b \u043e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c (&#8212;allow-fs-write) \u0438 \u0447\u0442\u0435\u043d\u0438\u0435 (&#8212;allow-fs-read) \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u0424\u0421,  \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c (&#8212;allow-child-process), \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c (&#8212;no-addons) \u0438  \u043f\u043e\u0442\u043e\u043a\u0430\u043c (&#8212;allow-worker).  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \/tmp \u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \/home\/index.js \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c:        node &#8212;experimental-permission &#8212;allow-fs-write=\/tmp\/ &#8212;allow-fs-read=\/home\/index.js index.js\n<p>Pro kontrolu p\u0159\u00edstupu se doporu\u010duje pou\u017e\u00edt metodu process.permission.has(), nap\u0159\u00edklad 'process.permission.has('fs.write', '\/tmp\/test').    <\/p>\n<li class=\"l\"> Zpracovatel\u00e9 extern\u00edch modul\u016f ECMAScript (ESM), na\u010d\u00edtan\u00fdch pomoc\u00ed mo\u017enosti '--experimental-loader', se nyn\u00ed spou\u0161t\u011bj\u00ed v samostatn\u00e9m vl\u00e1kn\u011b odd\u011blen\u00e9m od hlavn\u00edho vl\u00e1kna, co\u017e vylu\u010duje p\u0159ekr\u00fdv\u00e1n\u00ed k\u00f3du aplikac\u00ed a na\u010d\u00edtan\u00fdch ESM modul\u016f. Podobn\u011b jako v prohl\u00ed\u017ee\u010d\u00edch se metoda import.meta.resolve() nyn\u00ed p\u0159i vol\u00e1n\u00ed z aplikace spou\u0161t\u00ed synchronn\u011b. V jedn\u00e9 z budouc\u00edch v\u011btv\u00ed Node.js pl\u00e1nuj\u00ed p\u0159en\u00e9st podporu na\u010d\u00edt\u00e1n\u00ed ESM do kategorie stabiln\u00edch funkc\u00ed.\n<li class=\"l\"> Modul node:test (test_runner), ur\u010den\u00fd k vytv\u00e1\u0159en\u00ed a spou\u0161t\u011bn\u00ed test\u016f v jazyce JavaScript, kter\u00e9 vracej\u00ed v\u00fdsledek ve form\u00e1tu TAP (Test Anything Protocol), byl p\u0159eveden do stabiln\u00ed verze.\n<li class=\"l\"> Byl vytvo\u0159en samostatn\u00fd t\u00fdm v\u00fdvoj\u00e1\u0159\u016f odpov\u011bdn\u00fd za optimalizaci v\u00fdkonu, kter\u00fd p\u0159i p\u0159\u00edprav\u011b nov\u00e9 v\u011btve zv\u00fd\u0161il rychlost r\u016fzn\u00fdch komponent runtime, v\u010detn\u011b anal\u00fdzy URL, fetch() a EventTarget. Nap\u0159\u00edklad re\u017eie p\u0159i inicializaci EventTarget byla sn\u00ed\u017eena na polovinu, v\u00fdrazn\u011b se zv\u00fd\u0161il v\u00fdkon metody URL.canParse() a zlep\u0161ila se efektivita pr\u00e1ce \u010dasova\u010d\u016f. D\u00e1le byl zahrnut vysoce v\u00fdkonn\u00fd parser URL \u2014 Ada 2.0, napsan\u00fd v jazyce C++.\n<li class=\"l\"> Pokra\u010dovalo se ve v\u00fdvoji experiment\u00e1ln\u00ed funkce pro dod\u00e1vku aplikac\u00ed ve form\u011b jednoho spustiteln\u00e9ho souboru (SEA, Single Executable Applications). Vytvo\u0159en\u00ed spustiteln\u00e9ho souboru nyn\u00ed vy\u017eaduje vlo\u017een\u00ed blobu vytvo\u0159en\u00e9ho na z\u00e1klad\u011b konfigura\u010dn\u00edho souboru ve form\u00e1tu JSON (nam\u00edsto vkl\u00e1d\u00e1n\u00ed JavaScriptov\u00e9ho souboru).\n<li class=\"l\"> Byla zlep\u0161ena kompatibilita API Web Crypto s implementacemi od jin\u00fdch projekt\u016f.\n<li class=\"l\"> Byla p\u0159id\u00e1na ofici\u00e1ln\u00ed podpora Windows na syst\u00e9mech ARM64.\n<li class=\"l\"> Pokra\u010duje se v implementaci podpory roz\u0161\u00ed\u0159en\u00ed WASI (WebAssembly System Interface) pro vytv\u00e1\u0159en\u00ed izolovan\u00fdch WebAssembly aplikac\u00ed. Byla odstran\u011bna pot\u0159eba specifikovat zvl\u00e1\u0161tn\u00ed p\u0159\u00edznak p\u0159\u00edkazov\u00e9ho \u0159\u00e1dku pro povolen\u00ed podpory WASI.            <\/ul>\n<p>Platforma Node.js m\u016f\u017ee b\u00fdt vyu\u017eita jak pro serverov\u00e9 zaji\u0161t\u011bn\u00ed chodu webov\u00fdch aplikac\u00ed, tak pro vytv\u00e1\u0159en\u00ed oby\u010dejn\u00fdch klientsk\u00fdch a serverov\u00fdch s\u00ed\u0165ov\u00fdch program\u016f. Pro roz\u0161\u00ed\u0159en\u00ed funkcionality aplikac\u00ed pro Node.js je k dispozici rozs\u00e1hl\u00e1 sb\u00edrka modul\u016f, ve kter\u00e9 lze nal\u00e9zt moduly s realizacemi  <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/server\/\"   title=\"servery\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1704\">servery<\/a> a klient\u016f HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduly pro integraci s r\u016fzn\u00fdmi webov\u00fdmi frameworky, zpracovatele WebSocket a Ajax, konektory k datab\u00e1z\u00edm (MySQL, PostgreSQL, SQLite, MongoDB), \u0161ablonovac\u00ed enginy, CSS frameworky, implementace kryptografick\u00fdch algoritm\u016f a syst\u00e9m\u016f autorizace (OAuth), XML parsery.    <\/p>\n<p> Aby Node.js zvl\u00e1dl zpracov\u00e1n\u00ed velk\u00e9ho po\u010dtu paraleln\u00edch po\u017eadavk\u016f, vyu\u017e\u00edv\u00e1 asynchronn\u00ed model spou\u0161t\u011bn\u00ed k\u00f3du zalo\u017een\u00fd na zpracov\u00e1n\u00ed ud\u00e1lost\u00ed v nezablokovan\u00e9m re\u017eimu a ur\u010den\u00ed callback-handler\u016f. Mezi metody multiplexov\u00e1n\u00ed spojen\u00ed pat\u0159\u00ed epoll, kqueue, \/dev\/poll a select. Pro multiplexov\u00e1n\u00ed spojen\u00ed se pou\u017e\u00edv\u00e1 knihovna libuv, kter\u00e1 je nadstavbou nad libev v syst\u00e9mech Unix a nad IOCP ve Windows. Pro vytvo\u0159en\u00ed vl\u00e1kna (thread pool) se vyu\u017e\u00edv\u00e1 knihovna libeio a pro prov\u00e1d\u011bn\u00ed DNS dotaz\u016f v nezablokovan\u00e9m re\u017eimu je integrov\u00e1n c-ares. V\u0161echny syst\u00e9mov\u00e9 v\u00fdzvy, kter\u00e9 zp\u016fsobuj\u00ed blokaci, jsou prov\u00e1d\u011bny uvnit\u0159 vl\u00e1kna a n\u00e1sledn\u011b, stejn\u011b jako zpracovatel\u00e9 sign\u00e1l\u016f, p\u0159ed\u00e1vaj\u00ed v\u00fdsledek sv\u00e9 pr\u00e1ce zp\u011bt prost\u0159ednictv\u00edm anonymn\u00edho kan\u00e1lu (pipe). Prov\u00e1d\u011bn\u00ed JavaScriptov\u00e9ho k\u00f3du je zaji\u0161\u0165ov\u00e1no prost\u0159ednictv\u00edm vyu\u017eit\u00ed motoru V8 vyvinut\u00e9ho spole\u010dnost\u00ed Google (nav\u00edc Microsoft vyv\u00edj\u00ed variantu Node.js s motorem Chakra-Core).        <\/p>\n<p>Podstatou je, \u017ee Node.js je podobn\u00fd r\u00e1mc\u016fm Perl AnyEvent, Ruby Event Machine, Python Twisted a implementaci ud\u00e1lost\u00ed v Tcl, ale cyklus zpracov\u00e1n\u00ed ud\u00e1lost\u00ed (event loop) v Node.js je skryt p\u0159ed v\u00fdvoj\u00e1\u0159em a p\u0159ipom\u00edn\u00e1 zpracov\u00e1n\u00ed ud\u00e1lost\u00ed ve webov\u00e9 aplikaci b\u011b\u017e\u00edc\u00ed v prohl\u00ed\u017ee\u010di. P\u0159i psan\u00ed aplikac\u00ed pro node.js je t\u0159eba br\u00e1t v \u00favahu specifika ud\u00e1lostmi orientovan\u00e9ho programov\u00e1n\u00ed, nap\u0159\u00edklad nam\u00edsto prov\u00e1d\u011bn\u00ed \u201evar result = db.query(\u201eselect..\u201c);\u201c s \u010dek\u00e1n\u00edm na dokon\u010den\u00ed a n\u00e1slednou zpracov\u00e1n\u00ed v\u00fdsledk\u016f, se v Node.js pou\u017e\u00edv\u00e1 princip asynchronn\u00edho vykon\u00e1v\u00e1n\u00ed, tj. k\u00f3d je transformov\u00e1n na \u201edb.query(\u201eselect..\u201c, function (result) {zpracov\u00e1n\u00ed v\u00fdsledku});\u201c, p\u0159i kter\u00e9m \u0159\u00edzen\u00ed okam\u017eit\u011b p\u0159ejde k dal\u0161\u00edmu k\u00f3du a v\u00fdsledek dotazu bude zpracov\u00e1n, jakmile budou data p\u0159ijata.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58998\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 20.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. Node.js 20.0 \u043e\u0442\u043d\u0435\u0441\u0451\u043d \u043a \u0432\u0435\u0442\u043a\u0430\u043c \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u043a\u0442\u044f\u0431\u0440\u0435, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Node.js 20.x \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e 30 \u0430\u043f\u0440\u0435\u043b\u044f 2026 \u0433\u043e\u0434\u0430. \u0421\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 Node.js 18.x \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2025 \u0433\u043e\u0434\u0430, \u0430 \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 [&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-107956","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 20.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.\" \/>\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\/cs\/blog\/news\/dostupna-servernaya-javascript-platforma-node-js-20-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Node.js 20.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 20.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-servernaya-javascript-platforma-node-js-20-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=\"2023-04-19T10:48:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-04-19T12:43:38+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\udd47Dostupn\u00e1 serverov\u00e1 JavaScript platforma Node.js 20.0 | ProHoster","description":"Bylo vyd\u00e1no Node.js 20.0, platforma pro provozov\u00e1n\u00ed s\u00ed\u0165ov\u00fdch aplikac\u00ed napsan\u00fdch v JavaScriptu.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-servernaya-javascript-platforma-node-js-20-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Node.js 20.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 20.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-servernaya-javascript-platforma-node-js-20-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":"2023-04-19T10:48:21+00:00","article:modified_time":"2023-04-19T12:43:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"107956","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":"default","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":"2026-02-09 16:51:32","updated":"2026-02-09 16:51:32","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/107956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=107956"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/107956\/revisions"}],"predecessor-version":[{"id":158948,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/107956\/revisions\/158948"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=107956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=107956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=107956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}