{"id":99981,"date":"2021-04-21T16:22:48","date_gmt":"2021-04-21T14:22:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-servernoj-javascript-platformy-node-js-16-0"},"modified":"2021-04-21T16:22:48","modified_gmt":"2021-04-21T14:22:48","slug":"vypusk-servernoj-javascript-platformy-node-js-16-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0","title":{"rendered":"Node.js 16.0 serveru JavaScript platformas izn\u0101kums","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tika notika Node.js 16.0, JavaScript t\u012bmek\u013ca lietojumprogrammu izpildes platforma. Node.js 16.0 ir iek\u013cauts ilgas atbalsta fili\u0101l\u0113s, ta\u010du \u0161is statuss tiks pie\u0161\u0137irts tikai oktobr\u012b, p\u0113c stabiliz\u0101cijas veik\u0161anas. Node.js 16.0 atbalsts tiks nodro\u0161in\u0101ts l\u012bdz 2023. gada apr\u012blim. Iepriek\u0161\u0113j\u0101s LTS fili\u0101les Node.js 14.0 atbalsts ilgs l\u012bdz 2023. gada apr\u012blim, bet pirms tam eso\u0161\u0101s LTS fili\u0101les 12.0 atbalsts ilgs l\u012bdz 2022. gada apr\u012blim. LTS fili\u0101les 10.0 atbalsts tiks p\u0101rtraukts p\u0113c 10 dien\u0101m.        <\/p>\n<p>Galvenie uzlabojumi:  <\/p>\n<ul>\n<li class=\"l\"> V8 dzin\u0113js ir atjaunin\u0101ts uz versiju 9.0 (Node.js 15 izmantoja 8.6 izlaidumu), kas \u013c\u0101va ieviest Node.js 16 t\u0101das iesp\u0113jas k\u0101 \u012bpa\u0161ums \u201eindices\u201d regul\u0101rajiem izteiksm\u0113m (ietver mas\u012bvu ar s\u0101kuma un beig\u0101m grupu poz\u012bcij\u0101m), Atomics.waitAsync metodi (asinkrona versija Atomics.wait) un atbalstu await atsl\u0113gv\u0101rda izmanto\u0161anai modu\u013cos augst\u0101 l\u012bmen\u012b. Funkciju izsaukums ir pa\u0101trin\u0101ts situ\u0101cij\u0101s, kad padoto argumentu skaits neatbilst funkcij\u0101 noteiktajiem parametriem.\n<li class=\"l\"> Stabiliz\u0113ts API Timers Promises, kas sniedz alternat\u012bvu funkciju kopumu darbam ar taimeri, kas atgrie\u017e Promise objektus, \u013caujot izvair\u012bties no util.promisify() izmanto\u0161anas. import { setTimeout } from 'timers\/promises'; async function run() { await setTimeout(5000); console.log('Hello, World!'); } run();\n<li class=\"l\"> Pievienota eksperiment\u0101l\u0101 Web Crypto API \u012bsteno\u0161ana, kas paredz\u0113ta pamata kriptogr\u0101fisko oper\u0101ciju veik\u0161anai t\u012bmek\u013ca lietojumprogramm\u0101s, piem\u0113ram, manipul\u0101cija ar kriptogr\u0101fiskajiem ha\u0161iem, digit\u0101lo parakstu \u0123ener\u0113\u0161ana un p\u0101rbaude, datu kod\u0113\u0161ana un dekod\u0113\u0161ana, izmantojot da\u017e\u0101das \u0161ifr\u0113\u0161anas metodes, un kriptogr\u0101fiski dro\u0161u nejau\u0161u skait\u013cu \u0123ener\u0113\u0161ana. API ietver ar\u012b funkcijas atsl\u0113gu \u0123ener\u0113\u0161anai un p\u0101rvald\u012bbai.\n<li class=\"l\"> N-API (papla\u0161in\u0101jumu izstr\u0101des API) atjaunots l\u012bdz 8. versijai.\n<li class=\"l\"> Pabeigts p\u0101rejas process uz jauno NPM 7.10 versiju.\n<li class=\"l\"> Stabiliz\u0113ta AbortController klases \u012bsteno\u0161ana, kas balst\u0101s uz Web API AbortController un \u013cauj atcelt sign\u0101lus izv\u0113l\u0113tajos Promise pamata API.\n<li class=\"l\"> Stabiliz\u0113ts tre\u0161\u0101s versijas Source Map form\u0101ta atbalsts, kas tiek izmantots, lai sasaist\u012btu \u0123ener\u0113tos, apstr\u0101d\u0101tos vai iepakotos modu\u013cus ar ori\u0123in\u0101lo avota kodu.\n<li class=\"l\"> Sader\u012bbai ar novecoju\u0161\u0101m Web API pievienoti buffer.atob(data) un buffer.btoa(data) metodes.\n<li class=\"l\"> S\u0101ku\u0161i veidot izstr\u0101d\u0101jumus jauniem Apple ier\u012bc\u0113m, kas apr\u012bkotas ar ARM M1 mikrosh\u0113mu.\n<li class=\"l\"> Linux platform\u0101 pras\u012bbas attiec\u012bb\u0101 uz kompilatora versiju ir paaugstin\u0101tas l\u012bdz GCC 8.3.    <\/ul>\n<p>Atg\u0101din\u0101m, ka Node.js platforma var tikt izmantota gan t\u012bmek\u013ca lietojumprogrammu serveru atbalstam, gan parasto klientu un serveru t\u012bmek\u013ca programmu izstr\u0101dei. Lai papla\u0161in\u0101tu lietojumprogrammu funkcionalit\u0101ti Node.js, ir sagatavota liela modu\u013cu kolekcija, kur\u0101 var atrast modu\u013cus ar realiz\u0101cij\u0101m  <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/lv\/server\/\"   title=\"serveriem\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1573\">serveriem<\/a> un HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klientiem, modu\u013ciem integr\u0113\u0161anai ar da\u017e\u0101diem t\u012bmek\u013ca ietvariem, WebSocket un Ajax apstr\u0101d\u0101t\u0101jiem, datub\u0101zu (MySQL, PostgreSQL, SQLite, MongoDB) savienot\u0101jiem, veid\u0146u motorus, CSS dzin\u0113jus, kriptoval\u016btu algoritmu realiz\u0101cijas un autoriz\u0101cijas sist\u0113mas (OAuth), XML pars\u0113t\u0101jus.    <\/p>\n<p> Lai nodro\u0161in\u0101tu liel\u0101 skaita vienlaic\u012bgu piepras\u012bjumu apstr\u0101di, Node.js izmanto asynchrono koda palai\u0161anas modeli, kas balst\u0101s uz notikumu apstr\u0101di bez blo\u0137\u0113\u0161anas un callback-handler defin\u0113\u0161anu. Savienojumu multiplex\u0113\u0161anai tiek atbalst\u012bti t\u0101di pa\u0146\u0113mieni k\u0101 epoll, kqueue, \/dev\/poll un select. Savienojumu multiplex\u0113\u0161anai tiek izmantota bibliot\u0113ka libuv, kas ir virs libev Unix sist\u0113m\u0101s un IOCP Windows. Lai izveidotu pavedienu grupu (thread pool), tiek izmantota bibliot\u0113ka libeio, bet DNS piepras\u012bjumu izpilde bez blo\u0137\u0113\u0161anas ir integr\u0113ta ar c-ares. Visi sist\u0113mas izsaukumi, kas izraisa blo\u0137\u0113\u0161anu, tiek veikti pavedienu grup\u0101, un, t\u0101pat k\u0101 sign\u0101lu apstr\u0101d\u0101t\u0101ji, tie atgrie\u017e rezult\u0101tu caur nenosaukto cauruli (pipe). JavaScript koda izpilde tiek nodro\u0161in\u0101ta, izmantojot Google izstr\u0101d\u0101t\u0101 V8 dzin\u0113ja iesaisti (papildus Microsoft att\u012bsta Node.js versiju ar Chakra-Core dzin\u0113ju).        <\/p>\n<p>Node.js b\u016bt\u012bb\u0101 ir l\u012bdz\u012bgs Perl AnyEvent, Ruby Event Machine, Python Twisted ietvariem un notikumu realiz\u0101cij\u0101m Tcl, ta\u010du notikumu cikls (event loop) Node.js ir sl\u0113pts no izstr\u0101d\u0101t\u0101ja un atg\u0101dina notikumu apstr\u0101di web lietojumprogramm\u0101, kas darbojas p\u0101rl\u016bk\u0101. Rakstot lietojumprogrammas node.js, j\u0101\u0146em v\u0113r\u0101 notikumu orient\u0113t\u0101s programm\u0113\u0161anas specifika, piem\u0113ram, t\u0101 viet\u0101, lai izpild\u012btu \u201evar result = db.query(\u201eselect..\u201d);\u201d ar gaid\u0101m, kad darbs pabeigts un rezult\u0101ti apstr\u0101d\u0101ti, Node.js tiek izmantots asinkron\u0101s izpildes princips, t.i., kods tiek p\u0101rv\u0113rsts \u201edb.query(\u201eselect..\u201d, function (result) {rezult\u0101tu apstr\u0101de});\u201d, kur kontrole nekav\u0113joties p\u0101riet uz n\u0101kamo kodu, un vaic\u0101juma rezult\u0101ts tiks apstr\u0101d\u0101ts, sa\u0146emot datus.        <\/p>\n<p>Papildus j\u0101atz\u012bm\u0113, ka uz\u0146\u0113mums Deno, kuru dibin\u0101jis Node.js veidot\u0101js, lai att\u012bst\u012btu n\u0101kam\u0101s paaudzes platformu Deno, ir sa\u0146\u0113mis 4.9 miljonus dol\u0101ru invest\u012bciju. Deno p\u0113c savas b\u016bt\u012bbas atg\u0101dina Node.js, ta\u010du cen\u0161as nov\u0113rst konceptu\u0101l\u0101s k\u013c\u016bdas, kas pie\u013cautas Node.js arhitekt\u016br\u0101, un nodro\u0161in\u0101t lietot\u0101jiem dro\u0161\u0101ku vidi. Tiek nor\u0101d\u012bts, ka Deno biznesa risin\u0101jumi tiks balst\u012bti uz piln\u012bb\u0101 atv\u0113rt\u0101m produktiem, savuk\u0101rt Open Core modelis ar atsevi\u0161\u0137u maksas funkcionalit\u0101tes izdal\u012b\u0161anu tiek uzskat\u012bts par nepie\u0146emamu Deno platformai.<br \/>\n<br \/>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54998\">opennet.lv<\/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 16.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 16.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 16.0 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2023 \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 14.0 \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2023 \u0433\u043e\u0434\u0430, \u0430 \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 12.0 [&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-99981","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 16.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\/lv\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Node.js 16.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 16.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\/lv\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-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=\"2021-04-21T14:22:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-04-21T14:22:48+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\udd47Serveru JavaScript platformas Node.js 16.0 izlaidums | ProHoster","description":"Ir izn\u0101cis Node.js 16.0, platforma t\u012bmek\u013ca lietot\u0146u izpildei JavaScript valod\u0101.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Node.js 16.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 16.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\/lv\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-16-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":"2021-04-21T14:22:48+00:00","article:modified_time":"2021-04-21T14:22:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99981","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-04-21 14:41:15","updated":"2026-02-09 16:50:50","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/99981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=99981"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/99981\/revisions"}],"predecessor-version":[{"id":158817,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/99981\/revisions\/158817"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=99981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=99981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=99981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}