{"id":78969,"date":"2020-04-23T13:42:02","date_gmt":"2020-04-23T11:42:02","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-servernoj-javascript-platformy-node-js-14-0"},"modified":"2020-04-23T13:42:02","modified_gmt":"2020-04-23T11:42:02","slug":"vypusk-servernoj-javascript-platformy-node-js-14-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0","title":{"rendered":"Ver\u00f6ffentlichung der Server-JavaScript-Plattform Node.js 14.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/en\/blog\/release\/v14.0.0\/\">Hat stattgefunden<\/a><\/noindex> Release <noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\">Node.js 14.0<\/a><\/noindex>, eine Plattform zur Ausf\u00fchrung von Netzwerkapplikationen in JavaScript. Node.js 14.0 geh\u00f6rt zu den LTS-Zweigen, wird diesen Status jedoch erst im Oktober erhalten, nach Abschluss der Stabilisierung. Der Support f\u00fcr Node.js 14.0 wird <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/Release\">bereitgestellt werden<\/a><\/noindex> bis April 2023. Die Wartung des vorherigen LTS-Zweigs Node.js 12.0 wird bis April 2022 dauern, der vorletzte LTS-Zweig 10.0 bis April 2021. Der Support f\u00fcr den Zwischenzweig 13.x endet im Juni dieses Jahres.<\/p>\n<p>Haupt- <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@nodejs\/node-js-version-14-available-now-8170d384567e\">Verbesserungen<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Die M\u00f6glichkeit der On-Demand- oder ereignisgesteuerten Generierung von <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/the-node-js-collection\/easily-identify-problems-in-node-js-applications-with-diagnostic-report-dc82370d8029\">Diagnoseberichten<\/a><\/noindex>, in denen Ereignisse dokumentiert werden, die bei der Diagnose von Problemen wie Abst\u00fcrzen, Leistungsabf\u00e4llen, Speicherlecks, hoher CPU-Auslastung, unerwarteten Fehlermeldungen usw. helfen.\n<li class=\"l\"> Experimentelle Unterst\u00fctzung f\u00fcr die API <noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/api\/async_hooks.html#async_hooks_class_asynclocalstorage\">Async Local Storage<\/a><\/noindex> mit der Implementierung der Klasse AsyncLocalStorage, die zur Erstellung eines asynchronen Zustands mit Callback-Handlern und Promises verwendet werden kann. AsyncLocalStorage erm\u00f6glicht das Speichern von Daten w\u00e4hrend der Verarbeitung von Web-Anfragen, \u00e4hnlich wie Thread-Local Storage in anderen Sprachen.\n<li class=\"l\"> Die Warnmeldung zur experimentellen Funktion beim Laden <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/node\/blob\/master\/doc\/api\/esm.md\">Modulen<\/a><\/noindex>  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=42450\">ECMAScript 6<\/a><\/noindex> wird durch Import- und Exportausdr\u00fccke eingebunden und exportiert. Dabei bleibt die Implementierung der ESM-Module noch experimentell.\n<li class=\"l\"> Die V8-Engine wurde auf die Version <noindex><a rel=\"nofollow\" href=\"https:\/\/v8.dev\/\">8.1<\/a><\/noindex> (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52000\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52565\">2<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52312\">3<\/a><\/noindex>), in der neue Leistungsoptimierungen vorgenommen wurden und Neuerungen wie der neue logische Operator zur Verschmelzung \u201e??\u201c (gibt den rechten Operanden zur\u00fcck, wenn der linke Operand NULL oder undefined ist, und umgekehrt), der Operator \u201e?.\u201c zur gleichzeitigen \u00dcberpr\u00fcfung der gesamten Eigenschafts- oder Aufrufkette (z. B. \u201edb?.user?.name?.length\u201c ohne vorherige \u00dcberpr\u00fcfungen), die Methode Intl.DisplayName zur Ermittlung lokalisierter Bezeichnungen usw. hinzugef\u00fcgt wurden.\n<li class=\"l\"> Eine \u00dcberarbeitung der Streams-API wurde durchgef\u00fchrt, um die Konsistenz der Streams-APIs zu verbessern und Unterschiede im Verhalten der zugrunde liegenden Teile von Node.js zu beseitigen. Zum Beispiel wurde das Verhalten von http.OutgoingMessage dem von stream.Writable angeglichen, und net.Socket dem von stream.Duplex. Die Option autoDestroy ist standardm\u00e4\u00dfig auf \u201etrue\u201c gesetzt, was bedeutet, dass \u201e_destroy\u201c nach Abschluss aufgerufen wird.\n<li class=\"l\"> Experimentelle Unterst\u00fctzung f\u00fcr die API <noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/api\/wasi.html\">WASI<\/a><\/noindex> (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50406\">WebAssembly System Interface<\/a><\/noindex>), das Programmierschnittstellen f\u00fcr die direkte Interaktion mit dem Betriebssystem bereitstellt (POSIX-API zur Arbeit mit Dateien, Sockets usw.).\n<li class=\"l\"> Die Anforderungen an <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/node\/blob\/v12.x\/BUILDING.md#platform-list\">die minimalen Versionen<\/a><\/noindex> von Compilern und Plattformen wurden erh\u00f6ht: macOS 10.13 (High Sierra), GCC 6,  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nodejs\/node\/pull\/31954\">Windows neuer als 7\/2008R2<\/a><\/noindex>.\n<\/ul>\n<p>Wir erinnern daran, dass die Node.js-Plattform sowohl f\u00fcr die serverseitige Unterst\u00fctzung von Webanwendungen als auch f\u00fcr die Erstellung regul\u00e4rer clientseitiger und serverseitiger Netzwerkprogramme genutzt werden kann. F\u00fcr die Erweiterung der Funktionalit\u00e4t von Anwendungen f\u00fcr Node.js steht eine umfangreiche <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/\">Modulsammlung zur Verf\u00fcgung<\/a><\/noindex>, in der Module f\u00fcr die Implementierung von HTTP-, SMTP-, XMPP-, DNS-, FTP-, IMAP-, POP3-Servern und -klienten zu finden sind, Module f\u00fcr die Integration mit verschiedenen Web-Frameworks, WebSocket- und Ajax-Handler, Datenbankverbindungen (MySQL, PostgreSQL, SQLite, MongoDB), Template-Engines, CSS-Engines, Implementierungen von Krypto-Algorithmen und Autorisierungssystemen (OAuth), XML-Parser.<\/p>\n<p> Um eine gro\u00dfe Anzahl paralleler Anfragen zu verarbeiten, verwendet Node.js ein asynchrones Code-Ausf\u00fchrungsmodell, das auf einem nicht-blockierenden Ereignisverarbeitungsansatz und der Definition von Callback-Handlern basiert. Unterst\u00fctzte Multiplexierungsverfahren sind unter anderem epoll, kqueue, \/dev\/poll und select. F\u00fcr die Multiplexierung von Verbindungen wird die Bibliothek verwendet, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/libuv\/libuv\">libuv<\/a><\/noindex>, die eine Erweiterung \u00fcber <noindex><a rel=\"nofollow\" href=\"http:\/\/software.schmorp.de\/pkg\/libev.html\">libev<\/a><\/noindex> in Unix-Systemen und \u00fcber IOCP in Windows darstellt. F\u00fcr die Erstellung eines Thread-Pools wird die Bibliothek <noindex><a rel=\"nofollow\" href=\"http:\/\/software.schmorp.de\/pkg\/libeio.html\">libeio<\/a><\/noindex>, zur Ausf\u00fchrung von DNS-Anfragen im nicht-blockierenden Modus integriert, <noindex><a rel=\"nofollow\" href=\"http:\/\/c-ares.haxx.se\/\">c-ares<\/a><\/noindex>. Alle systematischen Aufrufe, die eine Blockierung hervorrufen, werden innerhalb des Thread-Pools ausgef\u00fchrt und \u00fcber ein benanntes Rohr (pipe) an die Callback-Handler zur\u00fcckgegeben. Die Ausf\u00fchrung von JavaScript-Code erfolgt \u00fcber die Verwendung der von Google entwickelten Engine <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/v8\/\">V8<\/a><\/noindex> (dar\u00fcber hinaus entwickelt Microsoft eine Variante von Node.js mit der Engine Chakra-Core).  <\/p>\n<p>Im Grunde genommen \u00e4hnelt Node.js den Frameworks <noindex><a rel=\"nofollow\" href=\"http:\/\/search.cpan.org\/dist\/AnyEvent\/\">Perl AnyEvent<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/eventmachine\/eventmachine\">Ruby Event Machine<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/twistedmatrix.com\/\">Python Twisted<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"http:\/\/wiki.tcl.tk\/1527\">Implementierung<\/a><\/noindex> Ereignisse in Tcl, aber die Ereignisschleife (event loop) in Node.js ist f\u00fcr den Entwickler verborgen und \u00e4hnelt der Ereignisverarbeitung in einer Webanwendung, die im Browser l\u00e4uft. Bei der Erstellung von Anwendungen f\u00fcr Node.js muss man die Besonderheiten der ereignisorientierten Programmierung ber\u00fccksichtigen. Anstatt beispielsweise \"var result = db.query('select..');\" auszuf\u00fchren und auf den Abschluss der Arbeit zu warten, wird in Node.js das Prinzip der asynchronen Ausf\u00fchrung verwendet, d.h. der Code wird in \"db.query('select..', function (result) { Ergebnisverarbeitung });\" umgewandelt, wobei die Steuerung sofort an den nachfolgenden Code \u00fcbergeht und das Ergebnis der Anfrage verarbeitet wird, sobald die Daten eintreffen. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52786\">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 14.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 14.0 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \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 14.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 12.0 \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2022 \u0433\u043e\u0434\u0430, \u0430 \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 10.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-78969","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 14.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\" \/>\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\/de\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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 14.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 14.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-23T11:42:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-23T11:42:02+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\udd47Ver\u00f6ffentlichung der serverseitigen JavaScript-Plattform Node.js 14.0 | ProHoster","description":"Die Ver\u00f6ffentlichung von Node.js 14.0, der Plattform zur Ausf\u00fchrung, fand statt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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 14.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 14.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-14-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-23T11:42:02+00:00","article:modified_time":"2020-04-23T11:42:02+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"78969","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:47:25","updated":"2022-10-01 20:48:10","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/78969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=78969"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/78969\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=78969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=78969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=78969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}