{"id":61270,"date":"2023-05-02T15:38:09","date_gmt":"2023-05-02T14:38:09","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=61270&#038;preview=true&#038;preview_id=61270"},"modified":"2023-07-27T11:34:03","modified_gmt":"2023-07-27T10:34:03","slug":"node-js-20","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/","title":{"rendered":"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3)"},"content":{"rendered":"<p>Node.js v20 ist jetzt verf\u00fcgbar! Am 18. April 2023 wurde es ver\u00f6ffentlicht und kann nun von allen genutzt werden. Mit dieser Version sollte Node.js viel sicherer und leistungsf\u00e4higer sein.<\/p>\n<p>Wichtig zu wissen: Da es sich um eine geradzahlige Version handelt, wird sie im Oktober 2023 zu einer Long-Term-Support-Version (LTS) und wird bis April 2026 unterst\u00fctzt. Das Node.js-Team sucht jedoch aktiv nach Feedback aus der Community, um eventuelle Probleme zu identifizieren und zu beheben, bevor sie zur LTS-Version erhoben wird.<\/p>\n<p>Diese neue Version von Node.js bringt aufregende Updates und Funktionen, die <a href=\"https:\/\/kinsta.com\/de\/blog\/arten-von-entwicklern\/\">Entwicklerinnen und Entwickler<\/a> sicher zu sch\u00e4tzen wissen werden, wie das experimentelle Permission Model, synchrones <code>import.meta.resolve<\/code>, einen stabilen Testrunner, Updates der V8 JavaScript Engine auf Version 11.3, die Leistungsverbesserungen und Fehlerbehebungen mit sich bringen, und vieles mehr.<\/p>\n<p>In diesem Artikel erf\u00e4hrst du mehr \u00fcber die \u00c4nderungen in Node.js v20 und erh\u00e4ltst einen detaillierten Einblick in die neuen Funktionen und M\u00f6glichkeiten.<\/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>Erste Schritte mit Node.js v20<\/h2>\n<p>Die Installation von Node.js v20 ist ganz \u00e4hnlich wie bei anderen <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-node-js\/\">Node.js<\/a>-Versionen. Alles, was du tun musst, ist:<\/p>\n<ol start=\"1\">\n<li>Lade das Installationspaket von der <a href=\"https:\/\/nodejs.org\/en\/download\/current\" target=\"_blank\" rel=\"noopener noreferrer\">offiziellen Node.js-Website<\/a> herunter.<\/li>\n<li>Sobald du das Installationsprogramm heruntergeladen hast, f\u00fchre es aus und folge den Anweisungen, um den Installationsprozess abzuschlie\u00dfen. Dieser Prozess ist ziemlich einfach und du musst nur der Lizenzvereinbarung zustimmen und auf &#8222;Weiter&#8220; klicken.<\/li>\n<li>Starte das System\/deinen Rechner nach Abschluss der Installation neu, damit alle \u00c4nderungen wirksam werden.<\/li>\n<li>\u00dcberpr\u00fcfe deine Node.js-Installation, indem du den folgenden Befehl ausf\u00fchrst:<\/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 verifizieren\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Node.js v20 Installation<\/figcaption><\/figure>\n<p>Wenn du die Versionsnummer (v20.0.0) siehst, bedeutet das, dass Node.js korrekt installiert ist und du mit Node.js v20 arbeiten kannst.<\/p>\n\n<h2>Was ist neu in Node.js v20?<\/h2>\n<p>Sehen wir uns die 5 wichtigsten Neuerungen an, die mit dieser Node.js-Version eingef\u00fchrt wurden. Zu diesen Funktionen geh\u00f6ren:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Experimentelles Permission Model<\/h3>\n<p>Die Einf\u00fchrung des experimentellen Permission Model in Node.js v20 ist eine wichtige Neuerung, die Entwicklern mehr Kontrolle \u00fcber den Zugriff auf bestimmte Ressourcen w\u00e4hrend der Ausf\u00fchrung gibt.<\/p>\n<p>Diese neue Funktion ist von Vorteil, wenn Sicherheit und Ressourcennutzung kritisch sind, z. B. in einer Produktionsumgebung.<\/p>\n<p>Das Permission Model bietet mehrere M\u00f6glichkeiten, darunter die Beschr\u00e4nkung des Zugriffs auf das Dateisystem, child_process, worker_threads und native Addons.<\/p>\n<p>Entwickler k\u00f6nnen Flags wie <code>--allow-fs-read<\/code>, <code>--allow-fs-write<\/code> und <code>--allow-child-process<\/code> verwenden, um festzulegen, welche Ressourcen zug\u00e4nglich sind. Um diese Flags zu aktivieren, m\u00fcssen die Entwickler das Flag <code>--experimental-permission<\/code> in Kombination mit den erforderlichen Berechtigungen verwenden.<\/p>\n<p>Hier ein Beispiel f\u00fcr die Verwendung des Berechtigungsmodells, um Lese- und Schreibzugriff auf das gesamte Dateisystem zu erm\u00f6glichen:<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js<\/code><\/pre>\n<p>Entwickler k\u00f6nnen das Berechtigungsmodell auch verwenden, um den Zugriff auf bestimmte Ordner und Dateien festzulegen. Der folgende Befehl erlaubt zum Beispiel den Schreibzugriff auf den Ordner <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>Ein gro\u00dfer Vorteil des Berechtigungsmodells ist die M\u00f6glichkeit, den Zugriff auf das Dateisystem genauer zu steuern. Entwickler k\u00f6nnen zum Beispiel Pfade und Wildcard-Muster angeben, um den Zugriff auf bestimmte Ordner oder Dateien zu erlauben.<\/p>\n<pre><code class=\"language-bash\">$ node --experimental-permission --allow-fs-read=\/home\/user\/* index.js<\/code><\/pre>\n<p>Der obige Befehl gew\u00e4hrt Lesezugriff auf alle Ordner im Verzeichnis <strong>\/home\/user\/<\/strong>.<\/p>\n<p>Die Berechtigungseigenschaft des Prozessobjekts kann auch verwendet werden, um zu pr\u00fcfen, ob eine bestimmte Berechtigung zur Laufzeit erteilt wurde. Wenn du zum Beispiel \u00fcberpr\u00fcfen willst, ob dein Node.js-Prozess Lesezugriff auf einen bestimmten Ordner, <strong>\/home\/user\/documents<\/strong>, hat, kannst du den folgenden Code verwenden:<\/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>Mit dem Permission Model kannst du den Zugriff deiner Node.js-Prozesse auf das Dateisystem genauer steuern, was zu einer besseren Sicherheit und einer effizienteren Ressourcennutzung f\u00fchren kann.<\/p>\n<p>Es ist wichtig zu beachten, dass das Permission Model noch experimentell ist und sich in zuk\u00fcnftigen Versionen von Node.js \u00e4ndern kann. Es ist ratsam, sich \u00fcber die <a href=\"https:\/\/nodejs.org\/api\/permissions.html#process-based-permissions\" target=\"_blank\" rel=\"noopener noreferrer\">Dokumentation des Permission Model<\/a> auf dem Laufenden zu halten und bei der Nutzung dieser experimentellen Funktionen Vorsicht walten zu lassen.<\/p>\n<h3>Stabiler Test Runner<\/h3>\n<p>Node.js v20 enth\u00e4lt eine stabile Version des test_runner-Moduls, mit dem Entwickler schnell und einfach <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a><span style=\"font-family: Roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-size: 1rem\">Testsuiten<\/span><a style=\"font-family: Roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-size: 1rem\" href=\"https:\/\/kinsta.com\/javascript\/\">&#8211;<\/a><span style=\"font-family: Roboto, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-size: 1rem\">erstellen und ausf\u00fchren k\u00f6nnen, ohne zus\u00e4tzliche Abh\u00e4ngigkeiten zu installieren.<\/span><\/p>\n<p>Der Stable Test Runner enth\u00e4lt jetzt mehrere Bausteine wie <code>describe<\/code>, <code>it<\/code>\/<code>test<\/code> und Hooks f\u00fcr die Erstellung und Strukturierung von Testdateien sowie Mocking, Watch Mode und die M\u00f6glichkeit, mehrere Testdateien mit dem Befehl <code>node --test<\/code> parallel auszuf\u00fchren.<\/p>\n<p>Hier ist ein Beispiel f\u00fcr die Verwendung des Testrunners:<\/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>Der Test Runner bietet konfigurierbare und benutzerdefinierte Testreporter \u00fcber das <code>--test-reporter<\/code> Flag, experimentelle Testabdeckung \u00fcber das <code>--experimental-test-coverage<\/code> Flag und Mocking-Funktionen.<\/p>\n<p>Der Stable Test Runner soll zwar keine vollwertigen Test-Frameworks wie <a href=\"https:\/\/jestjs.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jest<\/a> oder <a href=\"https:\/\/mochajs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mocha<\/a> ersetzen, bietet aber eine einfache und schnelle M\u00f6glichkeit, Testsuiten zu erstellen. Er wurde seit seiner Einf\u00fchrung in Node.js v19 erheblich verbessert und dank der Tests und des Feedbacks der Endnutzer wurde er in Node.js v20 als stabil eingestuft.<\/p>\n<p>Weitere Informationen findest du in diesem <a href=\"https:\/\/github.com\/nodejs\/node\/pull\/46983\" target=\"_blank\" rel=\"noopener noreferrer\">zusammengefassten Pull Request<\/a>.<\/p>\n<h3>V8 JavaScript Engine auf 11.3 aktualisiert<\/h3>\n<p>Die <a href=\"https:\/\/kinsta.com\/de\/blog\/node-debug\/#use-the-v8-inspector\">V8 JavaScript Engine<\/a>, die Node.js antreibt, wurde in Node.js v20 auf die Version 11.3 aktualisiert. Damit wurden die Leistung verbessert und neue Sprachfunktionen eingef\u00fchrt. Einige der neuen Funktionen dieses Updates sind:<\/p>\n<ul>\n<li><code>String.prototype.isWellFormed<\/code> und <code>toWellFormed<\/code>: Diese Methoden sind besonders n\u00fctzlich, um das richtige String-Format sicherzustellen. Sie stellen sicher, dass die String-Eingabe des Benutzers im korrekten UTF-16-Format erfolgt, wodurch Fehler im Zeitalter der Emojis reduziert werden.<\/li>\n<li>Methoden, die Array und TypedArray durch Kopieren ver\u00e4ndern: Dies kann n\u00fctzlich sein, um ge\u00e4nderte Kopien von Arrays zu erstellen, ohne die Originaldaten zu ver\u00e4ndern, was vor allem dann wichtig ist, wenn du die Originaldaten f\u00fcr Vergleiche oder andere Zwecke aufbewahren musst.<\/li>\n<li>Resizable <code>ArrayBuffer<\/code> und growable <code>SharedArrayBuffer<\/code>: bietet mehr Flexibilit\u00e4t und erm\u00f6glicht eine effizientere Speicherzuweisung.<\/li>\n<li>RegExp v Flag mit gesetzter Notation und Eigenschaften von Strings: erweitert die Funktionalit\u00e4t f\u00fcr regul\u00e4re Ausdr\u00fccke.<\/li>\n<li>WebAssembly Tail Call: bietet eine M\u00f6glichkeit, bestimmte Arten von Funktionsaufrufen zu optimieren.<\/li>\n<\/ul>\n<p>Diese Aktualisierungen zeigen das kontinuierliche Engagement der Node.js-Entwicklergemeinschaft zur Verbesserung von Leistung und Funktionalit\u00e4t.<\/p>\n<h3>Synchrones import.meta.resolve()<\/h3>\n<p>In Node.js v20 wurde <code>import.meta.resolve()<\/code> eingef\u00fchrt, was es einfacher macht, Skripte zu schreiben, die nicht ortsabh\u00e4ngig sind. Diese Funktion kehrt synchron zur\u00fcck, \u00e4hnlich dem Verhalten des Browsers, was eine effizientere Ausf\u00fchrung erm\u00f6glicht.<\/p>\n<p>User Loader Resolve Hooks k\u00f6nnen weiterhin als asynchrone Funktion definiert werden, aber <code>import.meta.resolve()<\/code> kehrt auch dann synchron f\u00fcr den Anwendungscode zur\u00fcck, wenn asynchrone Resolve Hooks geladen werden.<\/p>\n<p>Das synchrone Verhalten von <code>import.meta.resolve()<\/code> erm\u00f6glicht eine effizientere Codeausf\u00fchrung, insbesondere beim Umgang mit gro\u00dfen Datenmengen. Als Autor kannst du Resolve Hooks entweder als asynchrone oder synchrone Funktionen definieren, je nachdem, was du bevorzugst. Der Anwendungscode wird unabh\u00e4ngig davon, ob asynchrone Aufl\u00f6sungshaken geladen sind, weiterhin synchron ausgef\u00fchrt.<\/p>\n<h3>Experimental Single Executable Applications (SEA)<\/h3>\n<p>Experimental Single Executable Applications (SEA) ist eine neue Funktion in Node.js v20, die es erm\u00f6glicht, deine Anwendung mit der Node.js-Bin\u00e4rdatei zu b\u00fcndeln, so dass Endnutzer sie als eine einzige ausf\u00fchrbare Datei verteilen und ausf\u00fchren k\u00f6nnen.<\/p>\n<p>Dies ist ein langj\u00e4hriger Wunsch der Community, und das Team hat den Ansatz im letzten Jahr verfeinert.<\/p>\n<p>In Node.js v20 muss f\u00fcr die Erstellung einer einzelnen ausf\u00fchrbaren App ein Blob injiziert werden, der von Node.js aus einer JSON-Konfiguration vorbereitet wird, anstatt die rohe JS-Datei zu injizieren.<\/p>\n<p>Ein Blob ist eine Datei, die Bin\u00e4rdaten enth\u00e4lt, in diesem Fall von Node.js aufbereitet, und die in die Bin\u00e4rdatei injiziert wird. Diese \u00c4nderung wurde vorgenommen, um die Einbettung mehrerer nebeneinander bestehender Ressourcen in die SEA zu erm\u00f6glichen, was neue Anwendungsf\u00e4lle er\u00f6ffnet.<\/p>\n<p>Hier ist ein Beispiel f\u00fcr eine <strong>sea-config.json<\/strong>-Datei:<\/p>\n<pre><code class=\"language-js\">{ \n      \"main\": \"myscript.js\", \n      \"output\": \"sea-prep.blob\" \n}<\/code><\/pre>\n<p>Wenn sie mit dem Befehl <code>node --experimental-sea-config sea-config.json<\/code> ausgef\u00fchrt wird, wird der Blob in die Datei <strong>sea-prep.blob<\/strong> geschrieben, die dann in die Bin\u00e4rdatei injiziert werden kann.<\/p>\n<p>Die SEA-Funktion erm\u00f6glicht es Entwicklern, <a href=\"https:\/\/docs.sevalla.com\/templates\/overview\">Node.js-Anwendungen<\/a> zu verteilen, ohne dass die Nutzer <a href=\"https:\/\/kinsta.com\/de\/blog\/so-installierst-du-node-js\/\">Node.js installieren<\/a> m\u00fcssen. Die Funktion wurde von <a href=\"https:\/\/github.com\/RaisinTen\">Darshan Sen<\/a> entwickelt, der im Rahmen der JavaScriptLandia Awards auf der OpenJS World den Preis f\u00fcr den herausragenden Beitrag eines Neuank\u00f6mmlings erhielt.<\/p>\n<p>Microsoft, ein Mitglied der OpenJS Foundation, untersucht diese Funktion als eine M\u00f6glichkeit, Vektorangriffe zu reduzieren und die Node.js-Architektur f\u00fcr ein besseres Erlebnis zu st\u00e4rken. Obwohl das SEA-Feature noch experimentell ist, stellt es eine spannende neue Entwicklung f\u00fcr die Node.js-Community dar.<\/p>\n<h3>Leistung<\/h3>\n<p>Node.js v20 bringt erhebliche Verbesserungen der Runtime mit sich. Das neu gegr\u00fcndete Node.js Performance Team hat sich dabei besonders auf die Leistung konzentriert. Zu den Verbesserungen geh\u00f6ren Optimierungen in den Kernbereichen der Runtime, wie URL, <code>fetch()<\/code> und <code>EventTarget<\/code>.<\/p>\n<p>Eine der bemerkenswerten Verbesserungen ist die Verringerung der Kosten f\u00fcr die Initialisierung von <code>EventTarget<\/code>, die um die H\u00e4lfte reduziert wurde, was zu einem schnelleren Zugriff auf alle Subsysteme f\u00fchrt, die sie nutzen. Au\u00dferdem wurden die V8 Fast API-Aufrufe genutzt, um die Leistung von APIs wie <code>URL.canParse()<\/code> und Timer zu verbessern.<\/p>\n<p>Eine weitere spezifische \u00c4nderung ist die Einbeziehung der aktualisierten Version 2.0 von Ada, einem schnellen und spezifizierungskonformen URL-Parser, der in C++ geschrieben wurde.<\/p>\n\n<h2>Zusammenfassung<\/h2>\n<p>In diesem Artikel hast du einige der wichtigsten Funktionen (experimentell und stabil) und Verbesserungen kennengelernt, die Node.js v20 mit sich bringt, z. B. Verbesserungen an der V8-JavaScript-Engine, der Leistung, dem Test-Runner und der Einf\u00fchrung des experimentellen Berechtigungsmodells sowie der Einzelausf\u00fchrungsanwendungen.<\/p>\n<p>Es ist wichtig zu wissen, dass Node.js v14 im April 2023 ausl\u00e4uft. Daher ist es ratsam, ein Upgrade auf Node.js v18 (LTS) oder vNode.js 20 (bald LTS) zu planen.<\/p>\n<p>Willst du die neueste Version von Node.js ausprobieren? Das kannst du tun, indem du deine <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Node.js-Anwendung auf Kinsta<\/a> bereitstellst und deine ersten 20 Dollar bei uns bekommst. Wir unterst\u00fctzen Node.js v20 bereits, d.h. du kannst die neuen Funktionen und M\u00f6glichkeiten ab heute testen.<\/p>\n<p><em>Jetzt bist du dran! Welche Funktionen oder Verbesserungen findest du in Node.js v20 am interessantesten? Gibt es wichtige Neuerungen, die wir vielleicht \u00fcbersehen haben? Lass es uns in den Kommentaren wissen.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js v20 ist jetzt verf\u00fcgbar! Am 18. April 2023 wurde es ver\u00f6ffentlicht und kann nun von allen genutzt werden. Mit dieser Version sollte Node.js viel sicherer &#8230;<\/p>\n","protected":false},"author":287,"featured_media":61271,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[965],"class_list":["post-61270","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>Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3) - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Node.js v20 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 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\/de\/blog\/node-js-20\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3)\" \/>\n<meta property=\"og:description\" content=\"Node.js v20 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 11.3.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-02T14:38:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-27T10:34:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/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 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 11.3.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3)\",\"datePublished\":\"2023-05-02T14:38:09+00:00\",\"dateModified\":\"2023-07-27T10:34:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/\"},\"wordCount\":1734,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/\",\"name\":\"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3) - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg\",\"datePublished\":\"2023-05-02T14:38:09+00:00\",\"dateModified\":\"2023-07-27T10:34:03+00:00\",\"description\":\"Node.js v20 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 11.3.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg\",\"width\":6084,\"height\":3042},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node.js\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/node-js\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"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\/de\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/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\/de\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3) - Kinsta\u00ae","description":"Node.js v20 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 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\/de\/blog\/node-js-20\/","og_locale":"de_DE","og_type":"article","og_title":"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3)","og_description":"Node.js v20 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 11.3.","og_url":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2023-05-02T14:38:09+00:00","article_modified_time":"2023-07-27T10:34:03+00:00","og_image":[{"width":6084,"height":3042,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Node.js v20 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 11.3.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Joel Olawanle","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3)","datePublished":"2023-05-02T14:38:09+00:00","dateModified":"2023-07-27T10:34:03+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/"},"wordCount":1734,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/node-js-20\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/","url":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/","name":"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3) - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg","datePublished":"2023-05-02T14:38:09+00:00","dateModified":"2023-07-27T10:34:03+00:00","description":"Node.js v20 ist jetzt verf\u00fcgbar. Sieh dir an, was in dieser Version neu ist, darunter Test Runner, Permission Model, SEA und V8 JS Engine 11.3.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/node-js-20\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/node-js-20.jpg","width":6084,"height":3042},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/node-js-20\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Node.js","item":"https:\/\/kinsta.com\/de\/thema\/node-js\/"},{"@type":"ListItem","position":3,"name":"Was ist neu in Node.js v20 (Test Runner, Permission Model, SEA, V8 JS Engine 11.3)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","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\/de\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/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\/de\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/61270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=61270"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/61270\/revisions"}],"predecessor-version":[{"id":61547,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/61270\/revisions\/61547"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/translations\/dk"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61270\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/61271"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=61270"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=61270"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=61270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}