REST-API mit Node, Express und MongoDB

Ähnliche Dokumente
WebApp mit Node und Express

1 Node.js JavaScript auf dem Server

Node.js Einführung Manuel Hart

Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller

Node.js JavaScript auf dem Server

LT 56 - NODE.JS ES GIBT AUCH SCHÖNE MOMENTE. Ralf Enderle

Dies ist der zweite Artikel einer Serie über Electron.

Profil. Freiberuflicher IT-Berater Doktorand Theoretische Physik Microsoft MVP für Visual C# CodeProject MVP

Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle. Stefan Hornburg. Perlworkshop 2008

APIC-EM Software Engineering Insight

Moderne Anwendungen und relationale Datenbanken? Natürlich!

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal

Node.js der Alleskönner. Kai Donato MT AG Ratingen

Die Alternative zum Web-Form Modell

Software Engineering I (IB) Node.js. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

JavaScript in SAP HANA Das Schöne und das Biest? Dr. Ralph Guderlei JAX 2014

Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services?

Exercise (Part I) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Hallo zusammen, Vorbereitung:

Wie ich lernte die API zu lieben. 19. März sic[!]sec GmbH Industriestraße Gröbenzell

Angular & TypeScript. Grundlagen

BUSINESSMAIL X.400 WEB SERVICE API MAILBOX STATUS V1.0

MULTIPLEXING UND SERVER PUSH

Cameraserver mini. commissioning. Ihre Vision ist unsere Aufgabe

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: install.odt. Berger EDV Service Tulbeckstr.

ColdFusion Konfiguration für den Betrieb mit hyscore. ColdFusion Administrator. Notwendige Konfiguration für hyscore. PDF-Dokument: config_cf10.

ASP.NET Web-API - Grundlagen

datenlink-schnittstelle Version 1.0

Wenn. Schnittstellen. alt werden... Claus Straube IT Architekt

Putzi4Win 1/ 9. Dokumentation

So legen Sie eine gelöschte Resource wieder an

Anleitung REST API Schneelast-Messsystem SMS

JavaScript von der Datenbank bis zum Browser. MongoDb, ExpressJs, AngularJs und NodeJs im Überblick

Vorteil. Einfach zu realisieren performant. Übersichtlich performant. "Vererbung" von Änderungen an vererbender Tabelle

Anleitung REST API Schneelast-Messsystem SMS

Java - Webapplikationen

2. WWW-Protokolle und -Formate

Javascript auf dem Server: node.js

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Startup, Shutdown und Reboot eines Raspberry Pi über die HomeMatic CCU

Contentmanagement. Dipl.- Inf. Benjamin Bock Topic Maps Lab, Universität Leipzig leipzig.de. Schlüsselqualifika6on 10

Webanwendungen mit Node.js

ICShell. ICShell 22. DFN-Konferenz Sicherheit in vernetzten Systemen

REST Services in APEX Anwendungen nutzen

Composing Shops. Modulinstallation und andere coole Composer Features. (auch) für den OXID eshop... und ein bisschen Shopware ;)

Web-Anwendungen, SS17 - Fragentypen

Allgemeines. Shell Programmierung Unix. Kommentar. Vorgangsweise. Mag. Thomas Griesmayer

Schnittstellenarchitektur in Zeiten sich wandelnder Frontend-Technologien

Oracle & Java HOW TO

Koordinatentransformation unter Excel mit VBA

Delphi MVC Framework. Mathias Pannier

[HowTo] NZBGet Geschrieben von Per - 02 Aug :41

SAP-Daten per HTML anzeigen

Frontend-Entwicklung mit JavaScript

Inhaltsverzeichnis. Teil 1 Node.js... 1

SSL Installation auf Lotus Domino 8.5

vrealize Log Insight- Entwicklerressourcen 11. September 2017 vrealize Log Insight 4.3

DOM Document Object Model

Neue Welten: Externe Daten mit APEX nutzen

NotesSession.GetPropertyBroker( )

Bankleitzahlen einlesen

Spiel, Spaß, Spannung mit ember js

Benutzerhandbuch. Neukirchen

Python VS Perl. Storage Monitoring per API statt SNMP. Björn Müller Marcel Denia. comnet GmbH

REST Services To-Go Einfacher Einstieg in die REST Programmierung

Universität Leipzig - Softwaretechnik Praktikum 2014/2015 Installationsanleitung zum Projekt: Ein kartenbasiertes Multiplayer -Spiel

Serverfarmen, C10M-Ansätze mit NodeJS und Express

Nutzung von REST Clients für Allyouneed Marktplatz

Google Gears Offline Web?

Anmeldeinformationsverwaltung Powershell

Architektur von REST basierten Webservices

Embedded Webserver in Forth

Datenaustausch mit JSON

Powershell DSC Desired State Configuration

Web-basierte Anwendungssysteme PHP Teil 2

Automatisieren von Alltagsaufgaben. Tobias Meier BridgingIT GmbH

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Die Überwachung lokaler Server Parameter durch den Local Check erfordert die Installation eines Monitoring Agents auf dem überwachten Server.

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Installation and update of the Schiebel SmartTool2. Installation und Update des Schiebel SmartTool2

Unified-E Standard WebHttp Adapter

Vergleich der Voice Assistenten

Einrichten des IIS für DataFlex WebApp Server. Einrichten des IIS (Internet Information Server) für DataFlex WebApp Server

Diagramme - Next Generation

Tutorium SS17 EINFÜHRUNG + BREAKOUT

BSA LAMP-Installation unter Debian-Edge

1 Einführung Die Grundlagen Praxis 1 das Kassenbuch (zentraler CouchDB-Server) Praxis 2 das Kassenbuch als CouchApp...

REST Client mit RPG und IceBreak

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS

als Alternative zu REST Manuel

Installation von Zope, Plone, exam auf OSS

Programmieren in Java

Überblick. Klassen Optionale Typen DOM. Optionale Parameter Klassen. Einführung. 2 Motivation 3 Werkzeuge 4 Demonstration 5 Dart

Web-Technologien. Fachbereich AI, Web-Technologien 1

Einführung in die LMSAPI des Webkonferenzdienstes

Der Oracle Mobile Cloud Service

Best Practices API s. Max Horváth, Steffen Irrgang, Andre Zayarni

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Transkript:

REST-API mit Node, Express und MongoDB 1 Installation von Node.js, MongoDB Download nodejs.org, mongodb.com Test $ node -v v10.15.0 $ npm -v 6.4.1 $ mongo --version MongoDB shell version v4.0.5 (evtl. PATH setzten) 2 Projekt erstellen $ npm init erstellt im aktuellen Verzeichnis die Datei package.json 3 Hallo Welt in Konsole console.log('hallo Welt!'); Script starten $ node index 4 Webserver nur mit Node const http = require('http'); http.createserver(function(request, response) { response.writehead(200, {'Content-Type': 'text/plain' response.end('hallo Welt!'); ).listen(3000); console.log('server läuft auf Port 3000'); Script starten $ node Mit Browser auf Webserver zugreifen http:\\localhost:3000 Franz Kohnle Seite 1 von 6 25. Februar 2019

5 Webanwendung mit express express installieren $ npm install express --save Installation im aktuellen Verzeichnis, Dependency in package.json const express = require('express'); const app = express(); app.get('/', function(req, res) { res.send('hallo Welt!'); app.listen(3000, function() { console.log('server läuft auf Port 3000'); 6 API-Routes api-routes.js const router = require('express').router(); router.get('/', function (req, res) { res.json({ status: 'API funktioniert', message: 'Willkommen zur REST-API!' module.exports = router; zu hinzufügen: const apiroutes = require('./api-routes'); app.use('/api', apiroutes); Zugriff http:\\localhost:3000 http:\\localhost:3000\api Hallo Welt! { status : API funktioniert, message : Willkommen zur REST-API! Franz Kohnle Seite 2 von 6 25. Februar 2019

7 MongoDB MongoDB starten $ mongod mongoose und body-parser installieren $ npm install mongoose --save MongoDB object modeling $ npm install body-parser --save Parse incoming request bodies const express = require('express'); const bodyparser = require('body-parser'); const mongoose = require('mongoose'); const apiroutes = require('./api-routes'); const app = express(); app.use(bodyparser.urlencoded({ extended: true )); app.use(bodyparser.json()); mongoose.connect('mongodb://localhost/mongorest', { usenewurlparser: true let db = mongoose.connection; app.get('/', function(req, res) { res.send('hallo Welt!'); app.use('/api', apiroutes); app.listen(3000, function() { console.log('server läuft auf Port 3000'); Franz Kohnle Seite 3 von 6 25. Februar 2019

8 Controller und Model model.js const mongoose = require('mongoose'); const contactschema = mongoose.schema({ name: { type: String, required: true, email: { type: String, required: true, gender: String, phone: String, create_date: { type: Date, default: Date.now const Contact = module.exports = mongoose.model('contact', contactschema); module.exports.get = function (callback, limit) { Contact.find(callback).limit(limit); controller.js Contact = require('./model'); // READ exports.index = function (req, res) { Contact.get(function (err, contacts) { if (err) { res.json({ status: "error", message: err else{ res.json({ status: "success", message: "Contacts retrieved successfully", data: contacts ; // READ exports.view = function (req, res) { Contact.findById(req.params.contact_id, function (err, contact) { res.send(err); else{ res.json({ message: 'Contact details loading..', data: contact ; Franz Kohnle Seite 4 von 6 25. Februar 2019

// CREATE exports.new = function (req, res) { var contact = new Contact(); contact.name = req.body.name; //? req.body.name : contact.name; contact.gender = req.body.gender; contact.email = req.body.email; contact.phone = req.body.phone; contact.save(function (err) { if(err){ res.json(err); else{ res.json({ message: 'New contact created!', data: contact ; // UPDATE exports.update = function (req, res) { Contact.findById(req.params.contact_id, function (err, contact) { res.send(err); else{ contact.name = req.body.name? req.body.name : contact.name; contact.gender = req.body.gender; contact.email = req.body.email; contact.phone = req.body.phone; contact.save(function (err) { res.json(err); else{ res.json({ message: 'Contact Info updated', data: contact ; // DELETE exports.delete = function (req, res) { Contact.remove({_id: req.params.contact_id, function (err, contact) { res.send(err); else{ res.json({ status: 'success', message: 'Contact deleted' ; Franz Kohnle Seite 5 von 6 25. Februar 2019

api-routes.js const router = require('express').router(); router.get('/', function (req, res) { res.json({ status: 'API is ok', message: 'Welcome to REST-API!', const controller = require('./controller'); router.route('/contacts').get(controller.index).post(controller.new); router.route('/contacts/:contact_id').get(controller.view).patch(controller.update).put(controller.update).delete(controller.delete); module.exports = router; API-Endpunkte CREATE: POST /api/contacts READ: GET /api/contacts READ: GET /api/contacts/{id UPDATE: PUT /api/contacts/{id DELETE: DELETE /api/contacts/{id Quellen How To Build Simple RESTful API With NodeJs, ExpressJs And MongoDb Franz Kohnle Seite 6 von 6 25. Februar 2019