{"id":52533,"date":"2023-05-02T14:42:29","date_gmt":"2023-05-02T14:42:29","guid":{"rendered":"https:\/\/kinsta.com\/se\/?p=52533&#038;preview=true&#038;preview_id=52533"},"modified":"2023-09-21T09:18:39","modified_gmt":"2023-09-21T09:18:39","slug":"node-js-20","status":"publish","type":"post","link":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/","title":{"rendered":"Nyheter i Node.js v20 (Testk\u00f6rare, beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3)"},"content":{"rendered":"<p>Node.js v20 \u00e4r nu tillg\u00e4nglig! Den 18 april 2023 blev den offentlig och kan nu anv\u00e4ndas av alla. Med den h\u00e4r versionen b\u00f6r Node.js vara mycket s\u00e4krare och prestera \u00e4nnu b\u00e4ttre.<\/p>\n<p>Detta \u00e4r viktigt att veta &#8211; eftersom det \u00e4r en j\u00e4mn-numrerad version kommer den att bli en LTS-version (Long Term Support) i oktober 2023. Den kommer sedan att st\u00f6djas fram till april 2026. Node.js-teamet s\u00f6ker dock aktivt efter feedback fr\u00e5n sitt community f\u00f6r att identifiera och \u00e5tg\u00e4rda eventuella problem innan den befordras till LTS.<\/p>\n<p>Den nya versionen av Node.js inkluderar sp\u00e4nnande uppdateringar och funktioner som <a href=\"https:\/\/kinsta.com\/se\/blog\/typer-av-utvecklare\/\">utvecklare<\/a> s\u00e4kert kommer att uppskatta. Vi kan exempelvis n\u00e4mna den experimentella permissions-modellen, synkrona <code>import.meta.resolve<\/code>, en stabil testk\u00f6rare, uppdateringar av V8 JavaScript-motorn till version 11.3. Som ett resultat av allt detta blir det prestandaf\u00f6rb\u00e4ttringar, buggfixar, och mycket mer.<\/p>\n<p>I den h\u00e4r artikeln kommer vi att utforska de f\u00f6r\u00e4ndringar som inf\u00f6rs i Node.js v20 och ge dig en djupg\u00e5ende titt p\u00e5 dess nya funktioner och m\u00f6jligheter.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Komma ig\u00e5ng med Node.js v20<\/h2>\n<p>Att installera Node.js v20 \u00e4r ganska likt andra versioner av <a href=\"https:\/\/kinsta.com\/se\/blog\/vad-node-js\/\">Node.js<\/a>. Allt som du beh\u00f6ver g\u00f6ra \u00e4r:<\/p>\n<ol start=\"1\">\n<li>H\u00e4mta installationspaketet fr\u00e5n den <a href=\"https:\/\/nodejs.org\/en\/download\/current\" target=\"_blank\" rel=\"noopener noreferrer\">officiella webbplatsen f\u00f6r Node.js<\/a>.<\/li>\n<li>N\u00e4r du har laddat ner installationsprogrammet k\u00f6r du det och f\u00f6ljer instruktionerna f\u00f6r att slutf\u00f6ra installationen. Processen \u00e4r ganska okomplicerad och du beh\u00f6ver sedan bara godk\u00e4nna licensavtalet och klicka p\u00e5 knappen &#8221;Next&#8221;.<\/li>\n<li>Starta om systemet\/maskinen efter att installationsprocessen \u00e4r klar f\u00f6r att s\u00e4kerst\u00e4lla att alla \u00e4ndringar tr\u00e4der i kraft.<\/li>\n<li>Verifiera d\u00e4refter din Node.js-installation genom att k\u00f6ra f\u00f6ljande kommando:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">node -v<\/code><\/pre>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/04\/verify-node-v20-instalation.jpg\" alt=\"Node.js v20-installation\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Node.js v20-installation<\/figcaption><\/figure>\n<p>Om du ser versionsnumret (v20.0.0) betyder detta att Node.js \u00e4r korrekt installerat och att du \u00e4r redo att b\u00f6rja arbeta med Node.js v20.<\/p>\n\n<h2>Vad \u00e4r nytt i Node.js v20?<\/h2>\n<p>L\u00e5t oss utforska de 5 st\u00f6rre uppdateringarna som inf\u00f6rdes med den h\u00e4r Node.js-utg\u00e5van. Dessa funktioner inkluderar exempelvis:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Experimentell tillst\u00e5ndsmodell<\/h3>\n<p>Inf\u00f6randet av den experimentella tillst\u00e5ndsmodellen i Node.js v20 \u00e4r ett viktigt till\u00e4gg som ger utvecklare mer kontroll \u00f6ver \u00e5tkomsten till specifika resurser under exekvering.<\/p>\n<p>Den h\u00e4r nya funktionen \u00e4r f\u00f6rdelaktig n\u00e4r s\u00e4kerhet och resursanv\u00e4ndning \u00e4r kritiska, exempelvis i en produktionsmilj\u00f6.<\/p>\n<p>Beh\u00f6righetsmodellen har flera m\u00f6jligheter, bland annat att begr\u00e4nsa \u00e5tkomsten till filsystemet, child_process, worker_threads och inhemska till\u00e4gg.<\/p>\n<p>Utvecklare kan anv\u00e4nda flaggor som <code>--allow-fs-read<\/code>, <code>--allow-fs-write<\/code> och <code>--allow-child-process<\/code> f\u00f6r att ange vilka resurser som \u00e4r tillg\u00e4ngliga. F\u00f6r att aktivera dessa flaggor m\u00e5ste utvecklare anv\u00e4nda flaggan <code>--experimental-permission<\/code> i kombination med de n\u00f6dv\u00e4ndiga beh\u00f6righeterna.<\/p>\n<p>H\u00e4r \u00e4r ett exempel p\u00e5 hur man anv\u00e4nder beh\u00f6righetsmodellen f\u00f6r att till\u00e5ta l\u00e4s- och skriv\u00e5tkomst till hela filsystemet:<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js<\/code><\/pre>\n<p>Utvecklare kan dessutom anv\u00e4nda beh\u00f6righetsmodellen f\u00f6r att ange \u00e5tkomst till specifika mappar och filer. F\u00f6ljande kommando till\u00e5ter exempelvis skriv\u00e5tkomst till mappen <strong>\/tmp\/<\/strong>:<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-write=\/tmp\/ --allow-fs-read=\/home\/index.js index.js<\/code><\/pre>\n<p>En viktig f\u00f6rdel med beh\u00f6righetsmodellen \u00e4r m\u00f6jligheten att ut\u00f6va en mer detaljerad kontroll \u00f6ver filsystemets \u00e5tkomst. Utvecklare kan exempelvis ange s\u00f6kv\u00e4gar och wildcard-m\u00f6nster f\u00f6r att till\u00e5ta \u00e5tkomst till specifika mappar eller filer.<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-read=\/home\/user\/* index.js<\/code><\/pre>\n<p>Ovanst\u00e5ende kommando ger l\u00e4sbeh\u00f6righet till alla mappar i katalogen <strong>\/home\/user\/<\/strong>.<\/p>\n<p>Processobjektets beh\u00f6righetsegenskap kan dessutom anv\u00e4ndas f\u00f6r att kontrollera om en viss beh\u00f6righet har beviljats vid k\u00f6rning. Om du exempelvis vill kontrollera om din Node.js-process har l\u00e4sbeh\u00f6righet till en viss mapp, <strong>\/home\/user\/documents<\/strong>, kan du anv\u00e4nda f\u00f6ljande kod:<\/p>\n<pre><code class=\"language-js\">if (process.permission.has('fs.read', '\/home\/user\/documents')) {\n  console.log('Read access granted to \/home\/user\/documents');\n} else {\n  console.log('Read access not granted to \/home\/user\/documents');\n}<\/code><\/pre>\n<p>Genom att anv\u00e4nda Beh\u00f6righetsmodellen har du en mer detaljerad kontroll \u00f6ver dina Node.js-processers \u00e5tkomst till filsystemet. Som ett resultat s\u00e5 f\u00e5r du en b\u00e4ttre s\u00e4kerhet och en effektivare resursanv\u00e4ndning.<\/p>\n<p>Det \u00e4r viktigt att notera att Beh\u00f6righetsmodellen fortfarande \u00e4r experimentell och kan komma att \u00e4ndras i framtida versioner av Node.js. Det \u00e4r tillr\u00e5dligt att h\u00e5lla sig uppdaterad med <a href=\"https:\/\/nodejs.org\/api\/permissions.html#process-based-permissions\" target=\"_blank\" rel=\"noopener noreferrer\">dokumentationen om Beh\u00f6righetsmodellen<\/a> och att vara f\u00f6rsiktig n\u00e4r du anv\u00e4nder dessa experimentella funktioner.<\/p>\n<h3>Stabil testk\u00f6rare<\/h3>\n<p>Node.js v20 inneh\u00e5ller en stabil version av modulen test_runner som g\u00f6r det m\u00f6jligt f\u00f6r utvecklare att snabbt och enkelt bygga och k\u00f6ra <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a>-testsatser utan att installera ytterligare beroenden.<\/p>\n<p>Den stabila testk\u00f6raren inneh\u00e5ller nu flera byggblock, som <code>describe<\/code>, <code>it<\/code>\/<code>test<\/code>, och krokar, f\u00f6r att skapa och strukturera testfiler. Det inkluderas dessutom mocking, visningsl\u00e4ge och m\u00f6jligheten att k\u00f6ra flera testfiler parallellt med hj\u00e4lp av kommandot <code>node --test<\/code>.<\/p>\n<p>H\u00e4r \u00e4r ett exempel p\u00e5 hur testk\u00f6raren kan anv\u00e4ndas:<\/p>\n<pre><code class=\"language-js\">import { test, mock } from 'node:test';\nimport assert from 'node:assert';\nimport fs from 'node:fs';\n\nmock.method(fs, 'readFile', async () =&gt; \"Hello World\");\ntest('synchronous passing test', async (t) =&gt; {\n  \/\/ This test passes because it does not throw an exception.\n  assert.strictEqual(await fs.readFile('a.txt'), \"Hello World\");\n});<\/code><\/pre>\n<p>Testk\u00f6raren erbjuder konfigurerbara och anpassade testrapport\u00f6rer via flaggan <code>--test-reporter<\/code>, experimentell testt\u00e4ckning via flaggan <code>--experimental-test-coverage<\/code> och mocking-funktioner.<\/p>\n<p>Den stabila testk\u00f6raren \u00e4r visserligen inte avsedd att ers\u00e4tta fullfj\u00e4drade testramverk som <a href=\"https:\/\/jestjs.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jest<\/a> eller <a href=\"https:\/\/mochajs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mocha<\/a>. Den erbjuder dock ett enkelt och snabbt s\u00e4tt att skapa testsviter. Det har dessutom skett m\u00e5nga f\u00f6rb\u00e4ttringar sedan den introducerades i Node.js v19. Tack vare testning och feedback fr\u00e5n slutanv\u00e4ndare har den nu markerats som stabil i Node.js v20.<\/p>\n<p>Mer information finns i den h\u00e4r <a href=\"https:\/\/github.com\/nodejs\/node\/pull\/46983\" target=\"_blank\" rel=\"noopener noreferrer\">sammanslagna pull request<\/a>.<\/p>\n<h3>V8 JavaScript Motor uppdaterad till 11.3<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/blog\/node-debug\/#use-the-v8-inspector\">V8 JavaScript-motorn<\/a>, som driver Node.js, har uppdaterats till version 11.3 i Node.js v20. Som ett resultat s\u00e5 blir det en f\u00f6rb\u00e4ttrad prestanda och introducering av nya spr\u00e5kfunktioner. N\u00e5gra av de nya funktionerna i denna uppdatering \u00e4r f\u00f6ljande:<\/p>\n<ul>\n<li><code>String.prototype.isWellFormed<\/code> och <code>toWellFormed<\/code>: Dessa metoder \u00e4r s\u00e4rskilt anv\u00e4ndbara f\u00f6r att s\u00e4kerst\u00e4lla korrekt str\u00e4ngformat. Detta hj\u00e4lper exempelvis till att s\u00e4kerst\u00e4lla att anv\u00e4ndarens str\u00e4nginmatning \u00e4r i r\u00e4tt UTF-16-format, vilket minskar fel i emojis-\u00e5ldern.<\/li>\n<li>Metoder som \u00e4ndrar Array och TypedArray genom kopiering: Detta kan vara anv\u00e4ndbart f\u00f6r att skapa modifierade kopior av matriser utan att p\u00e5verka originaldata, vilket \u00e4r s\u00e4rskilt relevant i fall d\u00e4r du beh\u00f6ver bevara originaldata f\u00f6r j\u00e4mf\u00f6relser eller andra \u00e4ndam\u00e5l.<\/li>\n<li><code>ArrayBuffer<\/code> som kan \u00e4ndra storlek och<code>SharedArrayBuffer<\/code> som kan v\u00e4xa: ger st\u00f6rre flexibilitet och m\u00f6jligg\u00f6r effektivare minnes-allokering.<\/li>\n<li>RegExp v-flagga med upps\u00e4ttnings-notation och egenskaper hos str\u00e4ngar: l\u00e4gger till funktionalitet f\u00f6r regulj\u00e4ra uttryck.<\/li>\n<li>WebAssembly tail call: ger ett s\u00e4tt att optimera vissa typer av funktionsanrop.<\/li>\n<\/ul>\n<p>Dessa uppdateringar visar p\u00e5 Node.js utvecklings-community\u00b4s st\u00e4ndiga engagemang f\u00f6r att f\u00f6rb\u00e4ttra prestanda och funktionalitet.<\/p>\n<h3>Synkron import.meta.resolve()<\/h3>\n<p>I Node.js v20 har <code>import.meta.resolve()<\/code> inf\u00f6rts. Som ett resultat blir det l\u00e4ttare att skriva skript som inte \u00e4r platsk\u00e4nsliga. Den h\u00e4r funktionen returnerar synkront, i likhet med webbl\u00e4sarens beteende, vilket m\u00f6jligg\u00f6r effektivare utf\u00f6rande.<\/p>\n<p>User loader resolve hooks kan fortfarande definieras som en asynkron funktion, men <code>import.meta.resolve()<\/code> \u00e5terkommer fortfarande synkront f\u00f6r programkoden \u00e4ven om asynkrona resolve hooks laddas.<\/p>\n<p>Det synkrona beteendet hos <code>import.meta.resolve()<\/code> g\u00f6r det exempelvis m\u00f6jligt att utf\u00f6ra koden mer effektivt. Detta g\u00e4ller s\u00e4rskilt f\u00f6r stora m\u00e4ngder data. Som f\u00f6rfattare kan du definiera resolve hooks som antingen asynkrona eller synkrona funktioner, beroende p\u00e5 vad du f\u00f6redrar. Applikations.koden kommer fortfarande att exekveras synkront oavsett om det finns asynkrona resolve hooks inl\u00e4sta eller inte.<\/p>\n<h3>Experimentella till\u00e4mpningar med en enda exekverbar applikation (SEA)<\/h3>\n<p>Experimental Single Executable Applications (SEA) \u00e4r en ny funktion som inf\u00f6rdes i Node.js v20 och som g\u00f6r det m\u00f6jligt att paketera ditt applikation med Node.js bin\u00e4rfil. Som ett resultat kan slutanv\u00e4ndarna distribuera och k\u00f6ra det som en enda k\u00f6rbar fil.<\/p>\n<p>Detta har l\u00e4nge varit en \u00f6nskan fr\u00e5n dess community, och teamet har f\u00f6rfinat tillv\u00e4gag\u00e5ngss\u00e4ttet under det senaste \u00e5ret.<\/p>\n<p>I Node.js v20 kr\u00e4ver byggandet av en enda k\u00f6rbar app att man injicerar en blob som f\u00f6rbereds av Node.js fr\u00e5n en JSON-konfiguration i st\u00e4llet f\u00f6r att injicera den r\u00e5a JS-filen.<\/p>\n<p>En blob \u00e4r en fil som inneh\u00e5ller bin\u00e4ra data, i det h\u00e4r fallet f\u00f6rberedd av Node.js. Den injiceras sedan i den bin\u00e4ra filen. Den h\u00e4r \u00e4ndringen gjordes f\u00f6r att g\u00f6ra det m\u00f6jligt att b\u00e4dda in flera samexisterande resurser i SEA. Som ett resultat \u00f6ppnas det upp nya anv\u00e4ndningsomr\u00e5den.<\/p>\n<p>H\u00e4r \u00e4r ett exempel p\u00e5 en <strong>sea-config.json<\/strong>-fil:<\/p>\n<pre><code class=\"language-js\">{ \n      \"main\": \"myscript.js\", \n      \"output\": \"sea-prep.blob\" \n}<\/code><\/pre>\n<p>N\u00e4r den exekveras med kommandot <code>node --experimental-sea-config sea-config.json<\/code> skrivs blob-filen till filen <strong>sea-prep.blob<\/strong>, som sedan kan injiceras i den bin\u00e4ra filen.<\/p>\n<p>SEA-funktionen g\u00f6r det sedan m\u00f6jligt f\u00f6r utvecklare att distribuera <a href=\"https:\/\/docs.sevalla.com\/templates\/overview\">Node.js-applikationer<\/a>\u00a0utan att anv\u00e4ndarna beh\u00f6ver <a href=\"https:\/\/kinsta.com\/se\/blog\/hur-du-installerar-node-js\/\">installera Node.js<\/a>. Funktionen skapades av <a href=\"https:\/\/github.com\/RaisinTen\">Darshan Sen<\/a>, som vann utm\u00e4rkelsen Outstanding Contribution from a New Arrival award som en del av JavaScriptLandia Awards vid OpenJS World.<\/p>\n<p>Microsoft, som \u00e4r medlem i OpenJS Foundation, unders\u00f6ker den h\u00e4r funktionen som ett s\u00e4tt att minska vektorattacker och st\u00e4rka Node.js-arkitekturen f\u00f6r en b\u00e4ttre upplevelse. SEA-funktionen \u00e4r fortfarande experimentell, men den utg\u00f6r en sp\u00e4nnande ny utveckling f\u00f6r Node.js-communityt.<\/p>\n<h3>Prestanda<\/h3>\n<p>Node.js v20 inkluderar betydande f\u00f6rb\u00e4ttringar av sin k\u00f6rtid, med f\u00f6rnyat fokus p\u00e5 prestanda av det nybildade prestandateamet hos Node.js. F\u00f6rb\u00e4ttringarna omfattar optimeringar av de centrala delarna av k\u00f6rtiden, t.ex. webbadress, <code>fetch()<\/code> och <code>EventTarget<\/code>.<\/p>\n<p>En av de anm\u00e4rkningsv\u00e4rda f\u00f6rb\u00e4ttringarna \u00e4r minskningen av kostnaden f\u00f6r att initiera <code>EventTarget<\/code>, som har halverats. Detta har lett till snabbare \u00e5tkomst till alla delsystem som anv\u00e4nder den. Dessutom har V8 Fast API-anrop anv\u00e4nts f\u00f6r att f\u00f6rb\u00e4ttra prestandan i API: er som <code>URL.canParse()<\/code> och timers.<\/p>\n<p>En annan specifik f\u00f6r\u00e4ndring \u00e4r inf\u00f6randet av den uppdaterade versionen 2.0 av Ada, en snabb och spec-kompatibel webbadress-tolkare som \u00e4r skriven i C++.<\/p>\n\n<h2>Sammanfattning<\/h2>\n<p>I den h\u00e4r artikeln har du l\u00e4rt dig n\u00e5gra av de viktigaste funktionerna (experimentella och stabila) och f\u00f6rb\u00e4ttringarna som Node.js v20 medf\u00f6r. Det handlar exempelvis om f\u00f6rb\u00e4ttringar av V8 JavaScript-motorn, prestanda, testk\u00f6rare och inf\u00f6randet av experimentell tillst\u00e5ndsmodell och applikationer f\u00f6r enstaka exekvering.<\/p>\n<p>Det \u00e4r viktigt att veta att Node.js v14 kommer att utg\u00e5 i april \u00e5r 2023. Det rekommenderas d\u00e4rf\u00f6r att man b\u00f6rjar planera f\u00f6r att uppgradera till Node.js v18 (LTS) eller vNode.js 20 (snart LTS).<\/p>\n<p>Vill du prova den senaste versionen av Node.js? Du kan g\u00f6ra detta genom att distribuera din <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Node.js-applikation p\u00e5 Kinsta<\/a>, vi st\u00e5r f\u00f6r dina f\u00f6rsta 20 dollar. Vi har redan st\u00f6d f\u00f6r Node.js v20, vilket inneb\u00e4r att du kan testa dess nya funktioner och m\u00f6jligheter fr\u00e5n och med idag.<\/p>\n<p><em>Nu \u00e4r det din tur! Vilka funktioner eller f\u00f6rb\u00e4ttringar tycker du \u00e4r mest intressanta i Node.js v20? Finns det n\u00e5gra viktiga nyheter som vi kanske har f\u00f6rbisett? L\u00e5t oss veta detta i kommentarerna.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js v20 \u00e4r nu tillg\u00e4nglig! Den 18 april 2023 blev den offentlig och kan nu anv\u00e4ndas av alla. Med den h\u00e4r versionen b\u00f6r Node.js vara mycket &#8230;<\/p>\n","protected":false},"author":287,"featured_media":52534,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[798],"class_list":["post-52533","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-node-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Vad \u00e4r nytt i Node.js v20 (Testk\u00f6rare, Beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3) - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nyheter i Node.js v20 (Testk\u00f6rare, beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3)\" \/>\n<meta property=\"og:description\" content=\"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstasweden\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-02T14:42:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-21T09:18:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"6084\" \/>\n\t<meta property=\"og:image:height\" content=\"3042\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_se\" \/>\n<meta name=\"twitter:label1\" content=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Nyheter i Node.js v20 (Testk\u00f6rare, beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3)\",\"datePublished\":\"2023-05-02T14:42:29+00:00\",\"dateModified\":\"2023-09-21T09:18:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/\"},\"wordCount\":1949,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg\",\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/\",\"url\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/\",\"name\":\"Vad \u00e4r nytt i Node.js v20 (Testk\u00f6rare, Beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3) - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg\",\"datePublished\":\"2023-05-02T14:42:29+00:00\",\"dateModified\":\"2023-09-21T09:18:39+00:00\",\"description\":\"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg\",\"width\":6084,\"height\":3042},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/se\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js\",\"item\":\"https:\/\/kinsta.com\/se\/topics\/node-js\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Nyheter i Node.js v20 (Testk\u00f6rare, beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/se\/#website\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/se\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/se\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstasweden\/\",\"https:\/\/x.com\/kinsta_se\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/se\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Vad \u00e4r nytt i Node.js v20 (Testk\u00f6rare, Beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3) - Kinsta\u00ae","description":"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/","og_locale":"sv_SE","og_type":"article","og_title":"Nyheter i Node.js v20 (Testk\u00f6rare, beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3)","og_description":"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.","og_url":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstasweden\/","article_published_time":"2023-05-02T14:42:29+00:00","article_modified_time":"2023-09-21T09:18:39+00:00","og_image":[{"width":6084,"height":3042,"url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.","twitter_image":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_se","twitter_misc":{"Skriven av":"Joel Olawanle","Ber\u00e4knad l\u00e4stid":"10 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Nyheter i Node.js v20 (Testk\u00f6rare, beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3)","datePublished":"2023-05-02T14:42:29+00:00","dateModified":"2023-09-21T09:18:39+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/"},"wordCount":1949,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg","inLanguage":"sv-SE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/se\/blog\/node-js-20\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/","url":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/","name":"Vad \u00e4r nytt i Node.js v20 (Testk\u00f6rare, Beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3) - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg","datePublished":"2023-05-02T14:42:29+00:00","dateModified":"2023-09-21T09:18:39+00:00","description":"Node.js v20 har anl\u00e4nt. Ta en titt p\u00e5 vad som \u00e4r nytt i denna version, inklusive en Testk\u00f6rare, Beh\u00f6righetsmodell, SEA och V8 JS-motor 11.3.","breadcrumb":{"@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/se\/blog\/node-js-20\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#primaryimage","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/05\/node-js-20.jpg","width":6084,"height":3042},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/se\/blog\/node-js-20\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/se\/"},{"@type":"ListItem","position":2,"name":"Node.js","item":"https:\/\/kinsta.com\/se\/topics\/node-js\/"},{"@type":"ListItem","position":3,"name":"Nyheter i Node.js v20 (Testk\u00f6rare, beh\u00f6righetsmodell, SEA, V8 JS Motor 11.3)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/se\/#website","url":"https:\/\/kinsta.com\/se\/","name":"Kinsta\u00ae","description":"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar","publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/se\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/se\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/se\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstasweden\/","https:\/\/x.com\/kinsta_se","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/se\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/52533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/comments?post=52533"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/52533\/revisions"}],"predecessor-version":[{"id":52583,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/52533\/revisions\/52583"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/translations\/dk"},{"href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/52533\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media\/52534"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media?parent=52533"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/tags?post=52533"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/topic?post=52533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}