{"id":19947,"date":"2023-01-17T02:28:55","date_gmt":"2023-01-17T01:28:55","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=19947"},"modified":"2023-01-16T21:40:31","modified_gmt":"2023-01-16T20:40:31","slug":"rest-server-in-5-minunten-erstellen-mit-node-js-and-express-js","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=19947","title":{"rendered":"REST-Server in 5 Minunten erstellen mit Node.js and Express.js"},"content":{"rendered":"<p>REST (Representational State Transfer) Server sollten genutzt werden, wenn es darum geht, eine Web-API (Application Programming Interface) bereitzustellen, die es erm\u00f6glicht, Daten zwischen verschiedenen Systemen auszutauschen. <\/p>\n<p>REST ist ein Architekturstil, der sich auf die Verwendung von HTTP-Methoden wie GET, POST, PUT und DELETE konzentriert, um Ressourcen zu erstellen, abzufragen, zu \u00e4ndern und zu l\u00f6schen. Ein REST-Server kann in fast jeder Programmiersprache entwickelt werden und ist eine gute Wahl f\u00fcr die Erstellung von Microservices oder f\u00fcr die Integration von Anwendungen mit anderen Systemen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/langenhagen-silbersee.jpeg\" alt=\"\" width=\"640\" height=\"360\" class=\"aligncenter size-full wp-image-19955\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/langenhagen-silbersee.jpeg 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/langenhagen-silbersee-300x169.jpeg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><a href=\"https:\/\/expressjs.com\/de\/guide\/routing.html\" rel=\"noopener\" target=\"_blank\">Express.js<\/a> ist ein web Application Framework f\u00fcr Node.js, das es Entwicklern erleichtert, eine HTTP-Server zu erstellen und Routing-Funktionalit\u00e4ten bereitzustellen. Es ist eines der am weitesten verbreiteten Framework f\u00fcr Node.js und wird oft f\u00fcr die Erstellung von Webanwendungen und REST-APIs verwendet.<!--more--><\/p>\n<p><a href=\"https:\/\/expressjs.com\/de\/guide\/routing.html\" rel=\"noopener\" target=\"_blank\">Express.js<\/a> bietet eine einfache und leicht verst\u00e4ndliche API, die es Entwicklern erm\u00f6glicht, HTTP-Anfragen auf bestimmte Routen zu verarbeiten. Mit Express.js k\u00f6nnen Sie leicht Ressourcen erstellen, abrufen, aktualisieren und l\u00f6schen, indem Sie die HTTP-Methoden wie GET, POST, PUT und DELETE verwenden. Es bietet auch Funktionen wie Middleware-Unterst\u00fctzung, die es Ihnen erm\u00f6glichen, zus\u00e4tzliche Funktionalit\u00e4ten wie Authentifizierung und Autorisierung hinzuzuf\u00fcgen.<\/p>\n<p><a href=\"https:\/\/expressjs.com\/de\/guide\/routing.html\" rel=\"noopener\" target=\"_blank\">Express.js<\/a> ist sehr flexibel und kann mit anderen Bibliotheken und Middleware-Modulen kombiniert werden, um die Funktionalit\u00e4t zu erweitern. <\/p>\n<p>Wer mal schnell einen REST-Server ben\u00f6tigt, kann das einfach mit <strong>Node.js<\/strong> in 5 Schritten in 5 Minuten machen.<br \/>\nVoraussetzung npm l\u00e4uft. Einfach auf der Konsole testen <\/p>\n<p><strong>npm -v<\/strong> <\/p>\n<p>es muss die Version ausgegeben werden. Dann mal los &#8230;<\/p>\n<p>1. Ein leeres Verzeichnis anlegen und darin ein<\/p>\n<p><strong>npm init -y<\/strong><\/p>\n<p>aufrufen<\/p>\n<p>2. <a href=\"https:\/\/expressjs.com\/de\/advanced\/developing-template-engines.html\" rel=\"noopener\" target=\"_blank\">express.js<\/a> installieren<\/p>\n<p><strong>npm install express<\/strong><\/p>\n<p>3. in dem Verzeichnis eine <strong>index.js<\/strong> Datei mit diesem Inhalt anlegen:<\/p>\n<pre class=\"lang:js decode:true \" >\r\n\r\nconst express = require(\"express\");\r\nconst app = express();\r\n\r\napp.use(express.json());\r\n\r\napp.get(\"\/api\", function (req, res) {\r\n  res.status(200).json({ message: \"Hallo Kleinhirn.eu\" });\r\n});\r\napp.get(\"\/api\/info\", function (req, res) {\r\n  res.status(200).json({ message: \"Thomas Wenzlaff\" });\r\n});\r\napp.get(\"\/api\/pis\", (req, res) => {\r\n  const pis = [\r\n    { id: 1, name: \"Raspberry Pi W Zero\" },\r\n    { id: 2, name: \"Raspberry Pi 3\" },\r\n    { id: 3, name: \"Raspberry Pi 4\" },\r\n  ];\r\n  res.json(pis);\r\n});\r\n\r\nconst port = process.env.PORT || 5500;\r\n\r\napp.listen(port, () => console.log(`Server h\u00f6rt an Port: ${port}`));\r\n\r\n\r\n<\/pre>\n<p>4. Server starten mit<\/p>\n<p><strong>node index.js<\/strong><\/p>\n<p>5. Den Server auf Port <strong>5500<\/strong> im Webbrowser aufrufen mit <strong>http:\/\/localhost:5500\/api<\/strong> oder <strong>http:\/\/localhost:5500\/api\/info<\/strong>. Das Ergebnis:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express.png\" alt=\"\" width=\"806\" height=\"312\" class=\"aligncenter size-full wp-image-19948\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express.png 806w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express-300x116.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express-768x297.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>oder eine Liste von Raspberry Pis ausgeben &#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express-pi.png\" alt=\"\" width=\"772\" height=\"584\" class=\"aligncenter size-full wp-image-19951\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express-pi.png 772w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express-pi-300x227.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2023\/01\/npm-express-pi-768x581.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>REST (Representational State Transfer) Server sollten genutzt werden, wenn es darum geht, eine Web-API (Application Programming Interface) bereitzustellen, die es erm\u00f6glicht, Daten zwischen verschiedenen Systemen auszutauschen. REST ist ein Architekturstil, der sich auf die Verwendung von HTTP-Methoden wie GET, POST, PUT und DELETE konzentriert, um Ressourcen zu erstellen, abzufragen, zu \u00e4ndern und zu l\u00f6schen. Ein &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=19947\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eREST-Server in 5 Minunten erstellen mit Node.js and Express.js\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,3137,808,79,1023,4960,3388],"tags":[5354,5353,4962,2475,1533,1531,2487,5121],"class_list":["post-19947","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-javascript","category-linux-2","category-programmierung","category-raspberry-pi","category-react","category-script","tag-expres-js","tag-express","tag-java-script","tag-node","tag-node-js","tag-npm","tag-rest","tag-rest-server"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/19947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19947"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/19947\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19947"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}