SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
WER BIN ICH?
• Sebastian Springer	

• https://github.com/sspringer82	

• @basti_springer	

• Consultant,Trainer,Autor
Was erzähle ich euch
heute?
Applikationen in
Node.js
Aufbau
Bernd Kasper / pixelio.de
Standard Library
Node Bindings
V8 libuv
Eventloop async I/O
...insert
 your
 source
 code
 here...
Repo
npmjs.org
CouchDB
75k Pakete
npm Kommandozeilen
Tool
Bestandteil von
Node.js seit 0.6.3
Open Source
https://github.com/
npm/npm
installation
node_modules
Einfaches Publizieren
C:WINDOWS_
C:WINDOWS npm search express
C:WINDOWS npm install express
C:WINDOWS npm list
C:WINDOWS npm update express
C:WINDOWS npm remove express
package.json
{!
name: express,!
description: ,!
version: 4.2.0,!
author: {},!
dependencies: {},!
devDependencies: {},!
keywords: [],!
repository: {},!
scripts: {},!
engines: {},!
license: MIT,!
readme: ,!
}
C:WINDOWS npm init
C:WINDOWS npm install --save express!
npm http GET https://registry.npmjs.org/express
.!
! node_modules!
! express
dependencies: {!
express: ~4.3.1!
},
package.json
current folder
Modulsystem
Initiative Echte Soziale Marktwirtschaft IESM / pixelio.de
Das Modulsystem
eigene Module
NPM
interne Module
require
Interne Module
var fs = require(‘fs’);!
!
fs.readFile(‘/tmp/input.txt’, ‘utf-8’,
function(err, data) {!
console.log(‘data’);!
});
NPM Module
var express = require(‘express’);!
!
var app = express();!
!
app.get(‘/‘, function(req, res) {!
res.send(‘Hello World’);!
});!
!
app.listen(8080);
C:WINDOWS npm install express
Eigene Module
var fs = require(‘fs’);!
!
module.exports = {!
readFile: function() {!
return fs.readFileSync(‘/tmp/
input.txt’, ‘utf-8’);!
}!
}
myModule.js
Eigene Module
var myModule = require(‘./myModule’);!
!
var data = myModule.readFile();!
!
console.log(data);
index.js
Beispiel express
Applikation
Tim Reckmann / pixelio.de
express.js
Web Application Framework. Baut auf dem http-
Modul von Node.js auf. Bietet Middleware-
Komponenten, mit denen auf Requests reagiert
werden kann. Zusätzlich verfügt express.js über
einen Router.
Initiierung
var express = require(‘express’);!
!
var app = express();!
!
app.listen(8080);
Routing
Navigation in der Applikation per URL.
Variablen in URLs für dynamische Inhalte.
Eine Route besteht aus zwei Teilen: HTTP-
Methode und Pfad.
Routendefinition in eine separate Datei
auslagern.
Routing
module.exports = function(app) {!
app.get(‘/‘, function(req, res) {!
res.end(‘Hello World’);!
});!
app.get(‘/user/:id’, function(req, res) {!
res.end(‘Requested User: ‘ +
req.params.id);!
});!
};
var router = require(‘./router’);!
router(app);
router.js
index.js
Statischer Inhalt
Es ist kein zusätzlicher Webserver
erforderlich. Node.js liefert HTML, CSS, clientseitiges
JavaScript und Mediendateien selbst aus.
Statischer Inhalt
app.use(express.static(__dirname + '/
public'));
Middleware
Request
Response
func(req,res, next)
func(req,res, next)
func(req,res, next)
Template Engine
Generiertes HTML mit dynamischen Inhalten.
Es sind mehrere Template Engines verfügbar
z.B. Jade, Twig oder Handlebars.
Template Engine
var hbs = require(‘express-hbs');!
app.engine('hbs', hbs.express3());!
var view = path.join(__dirname, 'views');!
app.set('views', view);!
app.set('view engine', ‘hbs');
app.get(‘/‘, function(req, res) {!
res.render(‘index’);!
});
Datenbanken
Tim Reckmann / pixelio.de
Datenbanken
Speichern und Auslesen dynamischer Inhalte.
Es werden nahezu alle Datenbanken unterstützt
z.B. mySQL, SQLite, Redis, MongoDB.
Zugriffe auf Datenbanken sind in der Regel
asynchron.
Datenbanken
var sqlite = require(‘sqlite3’);!
!
var db = new sqlite.Database(‘/tmp/db’);!
!
db.get(‘SELECT * FROM users’, function(err,
data) {!
res.send(‘Hello ‘ + data.name);!
});
C:WINDOWS npm install sqlite3
Asynchronität
Rainer Sturm / pixelio.de
Asynchronität
Nahezu alle Operationen in Node.js sind
asynchron. Das gilt vom Webserver über den
Zugriff auf das Dateisystem bis hin zu
Datenströmen. Es wird viel mit Callback-
Funktionen gearbeitet. Diese können mit Promises
besser verwaltet werden.
Promises
Versprechen auf die Erfüllung einer
asynchronen Operation.
var myAsyncFunc = function() {!
var deferred = Q.defer();!
fs.readFile('input.txt', 'utf-8',
function(err, data) {!
if (err) {!
deferred.reject(err);!
} else {!
deferred.resolve(data);!
}!
});!
return deferred.promise;!
}!
!
myAsyncFunc().then(function(data) {!
console.log(data);!
});
Skalierung
Uwe Schlick / pixelio.de
Skalierung
Node.js ist im Normalfall Single Threaded und
kann deswegen nur mit einer bestimmten Anzahl
von Anfragen umgehen. Ressourcen eines
Servers können nicht vollständig ausgeschöpft
werden.
Es existieren mehrere Lösungszenarien.
Webserver
Webserver
$ curl localhost:8080 
curl localhost:8080 
$ node server.js
incoming request!
request answered in: 4636ms!
incoming request!
request answered in: 4622ms
Child_Process
Child_Process
$ curl localhost:8080 
curl localhost:8080 
$ node server2.js
incoming request!
incoming request!
request answered in: 4959ms!
request answered in: 4963ms
Cluster
Cluster
Es werden Kindprozesse über die fork-Methode
erzeugt. Die Kindprozesse teilen sich einen
TCP-Port.
Das Betriebssystem übernimmt das
Loadbalancing.
Child_Process
$ curl localhost:8080 
curl localhost:8080 
$ node cluster.js
incoming request!
incoming request!
request answered in: 4878ms!
request answered in: 4885ms
Loadbalancer
Loadbalancer
Mit einer Shared Nothing-Architektur kann
Node.js problemlos hinter einem Loadbalancer
betrieben werden.
Gemeinsamer Applikationsstatus wird über
eine Datenbank wie Memcache oder Redis
verwaltet.
Gut eignen sich z.B. HAProxy oder Nginx.
Cloud
Cloud
Cloud Support in Heroku und Microsoft
Azure. Applikationen werden deployed und
Knoten können nach Bedarf hochgefahren
werden.
Tests
uygar sanli / pixelio.de
Tests
Node.js ist selbst recht ordentlich getestet (tests/
simple/*.js). Es verfügt über ein eigenes
Testframework (assert-Modul).
Es gibt verschiedene Unittest-
Frameworks für Node.js.
$ wget http://nodejs.org/dist/v0.10.26/
node-v0.10.26.tar.gz
$ tar xvzf node-v0.10.26.tar.gz
$ cd node-v0.10.26/test/simple
$ node test-http.js
{ accept: '*/*',
foo: 'bar',
host: 'localhost:12346',
connection: 'keep-alive' }
DEBUG: Got /hello response
DEBUG: Got /world response
DEBUG: responses_recvd: 2
DEBUG: responses_sent: 2
nodeunit
nodeunit
$ nodeunit test.js !
!
test.js!
setUp!
firstExample!
tearDown!
✔ firstExample!
setUp!
tearDown!
✔ exampleGroup - secondExample!
!
OK: 2 assertions (8ms)
nodeunit
Installation über npm install -g nodeunit.
nodeunit ist ein eigenständiges Testframework.
Bietet übersichtlichere Ausgabe als das Assert-
Modul.
Die verfügbaren Assertions sind ähnlich wie die
des Assert-Moduls.
Mocha
$ mocha test!
!
․․․․․․․․․․․․․․․․!
!
16 passing (48ms)
Mocha

Weitere ähnliche Inhalte

Was ist angesagt?

node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführungnodeio
 
Ceph Introduction @GPN15
Ceph Introduction @GPN15Ceph Introduction @GPN15
Ceph Introduction @GPN15m1no
 
Automatisierte infrastruktur mit ansible
Automatisierte infrastruktur mit ansibleAutomatisierte infrastruktur mit ansible
Automatisierte infrastruktur mit ansibleStephan Hochhaus
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with AnsibleSusannSgorzaly
 
Einführung in Laravel und GulpJS
Einführung in Laravel und GulpJSEinführung in Laravel und GulpJS
Einführung in Laravel und GulpJSthespazecookie
 
WordPress Professional II
WordPress Professional IIWordPress Professional II
WordPress Professional IISebastian Blum
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeFrank Müller
 
PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3marco-huber
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerGregor Biswanger
 
Quarkus Quickstart
Quarkus QuickstartQuarkus Quickstart
Quarkus QuickstartQAware GmbH
 
Ladezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript KomprimierenLadezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript KomprimierenJoomla! User Group Fulda
 

Was ist angesagt? (20)

node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführung
 
node.js Einführung
node.js Einführungnode.js Einführung
node.js Einführung
 
Node.js Security
Node.js SecurityNode.js Security
Node.js Security
 
Ceph Introduction @GPN15
Ceph Introduction @GPN15Ceph Introduction @GPN15
Ceph Introduction @GPN15
 
Automatisierte infrastruktur mit ansible
Automatisierte infrastruktur mit ansibleAutomatisierte infrastruktur mit ansible
Automatisierte infrastruktur mit ansible
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
Einführung in Laravel und GulpJS
Einführung in Laravel und GulpJSEinführung in Laravel und GulpJS
Einführung in Laravel und GulpJS
 
Node.js für Webapplikationen
Node.js für WebapplikationenNode.js für Webapplikationen
Node.js für Webapplikationen
 
JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
Nginx
NginxNginx
Nginx
 
WordPress Professional II
WordPress Professional IIWordPress Professional II
WordPress Professional II
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
 
Typo3 und Varnish
Typo3 und VarnishTypo3 und Varnish
Typo3 und Varnish
 
PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3
 
JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
Ceph Object Store
Ceph Object StoreCeph Object Store
Ceph Object Store
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
 
Quarkus Quickstart
Quarkus QuickstartQuarkus Quickstart
Quarkus Quickstart
 
Ladezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript KomprimierenLadezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript Komprimieren
 

Andere mochten auch

Week5-8trainingweekdiarys
Week5-8trainingweekdiarysWeek5-8trainingweekdiarys
Week5-8trainingweekdiaryscameronmcivor
 
Who is tony cragg 1
Who is tony cragg 1Who is tony cragg 1
Who is tony cragg 1nivaca2
 
Health risks of heavy metals in selected food crops cultivated
Health risks of heavy metals in selected food crops cultivatedHealth risks of heavy metals in selected food crops cultivated
Health risks of heavy metals in selected food crops cultivatedAlexander Decker
 
Evolution of the Prototype Marketer: The Hybrids are Coming
Evolution of the Prototype Marketer: The Hybrids are ComingEvolution of the Prototype Marketer: The Hybrids are Coming
Evolution of the Prototype Marketer: The Hybrids are ComingPR 20/20
 
Austin: Navigating the “Great Reset” and Creating a More Sustainable Economy
Austin: Navigating the “Great Reset” and Creating a More Sustainable EconomyAustin: Navigating the “Great Reset” and Creating a More Sustainable Economy
Austin: Navigating the “Great Reset” and Creating a More Sustainable EconomyCivic Analytics LLC
 
Going Viral: Maximize Social Media & Raise More Money
Going Viral: Maximize Social Media & Raise More MoneyGoing Viral: Maximize Social Media & Raise More Money
Going Viral: Maximize Social Media & Raise More MoneyJen Newmeyer, CFRE
 
Compressively Sensing Action Potentials (Neural Spikes) - Presented at BSN 2011
Compressively Sensing Action Potentials  (Neural Spikes) - Presented at BSN 2011Compressively Sensing Action Potentials  (Neural Spikes) - Presented at BSN 2011
Compressively Sensing Action Potentials (Neural Spikes) - Presented at BSN 2011Zainul Charbiwala
 
Kiosked at GSMA Mobile World Congress 24 February 2014
Kiosked at  GSMA Mobile World Congress 24 February 2014 Kiosked at  GSMA Mobile World Congress 24 February 2014
Kiosked at GSMA Mobile World Congress 24 February 2014 Kiosked
 
How would you find what you can't see?
How would you find what you can't see?How would you find what you can't see?
How would you find what you can't see?pinkflawd
 
Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...
Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...
Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...Charlene Chambers
 
Political Science 7 – International Relations - Power Point #9
Political Science 7 – International Relations - Power Point #9Political Science 7 – International Relations - Power Point #9
Political Science 7 – International Relations - Power Point #9John Paul Tabakian
 
Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology...
 Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology... Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology...
Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology...hydrologyproject001
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3Warui Maina
 
Mini p gsm based display
Mini p gsm based displayMini p gsm based display
Mini p gsm based displayAshu0711
 
Ops Meta-Metrics: The Currency You Pay For Change
Ops Meta-Metrics: The Currency You Pay For ChangeOps Meta-Metrics: The Currency You Pay For Change
Ops Meta-Metrics: The Currency You Pay For ChangeJohn Allspaw
 

Andere mochten auch (18)

7 Stan Allen Ing Esp
7 Stan Allen Ing Esp7 Stan Allen Ing Esp
7 Stan Allen Ing Esp
 
Week5-8trainingweekdiarys
Week5-8trainingweekdiarysWeek5-8trainingweekdiarys
Week5-8trainingweekdiarys
 
Who is tony cragg 1
Who is tony cragg 1Who is tony cragg 1
Who is tony cragg 1
 
Health risks of heavy metals in selected food crops cultivated
Health risks of heavy metals in selected food crops cultivatedHealth risks of heavy metals in selected food crops cultivated
Health risks of heavy metals in selected food crops cultivated
 
Evolution of the Prototype Marketer: The Hybrids are Coming
Evolution of the Prototype Marketer: The Hybrids are ComingEvolution of the Prototype Marketer: The Hybrids are Coming
Evolution of the Prototype Marketer: The Hybrids are Coming
 
Austin: Navigating the “Great Reset” and Creating a More Sustainable Economy
Austin: Navigating the “Great Reset” and Creating a More Sustainable EconomyAustin: Navigating the “Great Reset” and Creating a More Sustainable Economy
Austin: Navigating the “Great Reset” and Creating a More Sustainable Economy
 
Going Viral: Maximize Social Media & Raise More Money
Going Viral: Maximize Social Media & Raise More MoneyGoing Viral: Maximize Social Media & Raise More Money
Going Viral: Maximize Social Media & Raise More Money
 
Compressively Sensing Action Potentials (Neural Spikes) - Presented at BSN 2011
Compressively Sensing Action Potentials  (Neural Spikes) - Presented at BSN 2011Compressively Sensing Action Potentials  (Neural Spikes) - Presented at BSN 2011
Compressively Sensing Action Potentials (Neural Spikes) - Presented at BSN 2011
 
Edutv2.0 english
Edutv2.0 englishEdutv2.0 english
Edutv2.0 english
 
Kiosked at GSMA Mobile World Congress 24 February 2014
Kiosked at  GSMA Mobile World Congress 24 February 2014 Kiosked at  GSMA Mobile World Congress 24 February 2014
Kiosked at GSMA Mobile World Congress 24 February 2014
 
How would you find what you can't see?
How would you find what you can't see?How would you find what you can't see?
How would you find what you can't see?
 
Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...
Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...
Younglivingessentialoils essentialoils101presentationjuly2014-140710132341-ph...
 
Political Science 7 – International Relations - Power Point #9
Political Science 7 – International Relations - Power Point #9Political Science 7 – International Relations - Power Point #9
Political Science 7 – International Relations - Power Point #9
 
Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology...
 Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology... Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology...
Download-manuals-surface water-manual-sw-volume3fieldmanualhydro-meteorology...
 
3.o o design -_____________lecture 3
3.o o design -_____________lecture 33.o o design -_____________lecture 3
3.o o design -_____________lecture 3
 
Mini p gsm based display
Mini p gsm based displayMini p gsm based display
Mini p gsm based display
 
Constitutional Suprimacy (Perspective Federal Constitution of Malaysian).
Constitutional Suprimacy (Perspective Federal Constitution of Malaysian).Constitutional Suprimacy (Perspective Federal Constitution of Malaysian).
Constitutional Suprimacy (Perspective Federal Constitution of Malaysian).
 
Ops Meta-Metrics: The Currency You Pay For Change
Ops Meta-Metrics: The Currency You Pay For ChangeOps Meta-Metrics: The Currency You Pay For Change
Ops Meta-Metrics: The Currency You Pay For Change
 

Ähnlich wie Node.js

Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit RustJens Siebert
 
Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit RustJens Siebert
 
JsUnconf 2014
JsUnconf 2014JsUnconf 2014
JsUnconf 2014emrox
 
Object-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopObject-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopWaldemar Dell
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondUlrich Krause
 
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungBack to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungMongoDB
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
 
Cloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneCloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneQAware GmbH
 
Textanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und HadoopTextanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und Hadoopinovex GmbH
 
Webanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationWebanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationThomas Siegers
 

Ähnlich wie Node.js (20)

Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit Rust
 
JsUnconf 2014
JsUnconf 2014JsUnconf 2014
JsUnconf 2014
 
Webapplikationen mit Node.js
Webapplikationen mit Node.jsWebapplikationen mit Node.js
Webapplikationen mit Node.js
 
Object-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopObject-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - Workshop
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
Hdc2012 cordova-präsi
Hdc2012 cordova-präsiHdc2012 cordova-präsi
Hdc2012 cordova-präsi
 
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungBack to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
Cloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneCloud Infrastructure with Crossplane
Cloud Infrastructure with Crossplane
 
Textanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und HadoopTextanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und Hadoop
 
Webanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationWebanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und Administration
 

Mehr von Sebastian Springer

Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsCreating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsSebastian Springer
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsSebastian Springer
 
From Zero to Hero – Web Performance
From Zero to Hero – Web PerformanceFrom Zero to Hero – Web Performance
From Zero to Hero – Web PerformanceSebastian Springer
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebSebastian Springer
 
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im ProduktivbetriebECMAScript 6 im Produktivbetrieb
ECMAScript 6 im ProduktivbetriebSebastian Springer
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptSebastian Springer
 
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtWarum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtSebastian Springer
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der WebentwicklungSebastian Springer
 

Mehr von Sebastian Springer (20)

Schnelleinstieg in Angular
Schnelleinstieg in AngularSchnelleinstieg in Angular
Schnelleinstieg in Angular
 
Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsCreating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.js
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
 
From Zero to Hero – Web Performance
From Zero to Hero – Web PerformanceFrom Zero to Hero – Web Performance
From Zero to Hero – Web Performance
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
 
A/B Testing mit Node.js
A/B Testing mit Node.jsA/B Testing mit Node.js
A/B Testing mit Node.js
 
Angular2
Angular2Angular2
Angular2
 
Einführung in React
Einführung in ReactEinführung in React
Einführung in React
 
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im ProduktivbetriebECMAScript 6 im Produktivbetrieb
ECMAScript 6 im Produktivbetrieb
 
Streams in Node.js
Streams in Node.jsStreams in Node.js
Streams in Node.js
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
Typescript
TypescriptTypescript
Typescript
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtWarum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser macht
 
Lean Startup mit JavaScript
Lean Startup mit JavaScriptLean Startup mit JavaScript
Lean Startup mit JavaScript
 
Debugging und Profiling
Debugging und ProfilingDebugging und Profiling
Debugging und Profiling
 
JavaScript Architektur
JavaScript ArchitekturJavaScript Architektur
JavaScript Architektur
 
Angular translate
Angular translateAngular translate
Angular translate
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
 
Error handling in JavaScript
Error handling in JavaScriptError handling in JavaScript
Error handling in JavaScript
 

Node.js