6. Struktur bedeutet Organisation des Quellcodes in
Komponenten, Dateien und Verzeichnisse.
Ziel ist eine Verbesserung der
Wartbarkeit und Erweiterbarkeit.
…und ja, das geht mit Node.js
10. Frameworks liefern Strukturkomponenten, Hilfsfunktionen
und eine Reihe von Best Practices.
!
Frameworks lösen Probleme, von denen du noch nicht einmal
wusstest, dass du sie haben wirst.
12. var express = require('express');!
var app = express();!
!
app.get('/', function(req, res){!
res.send('hello world');!
});!
!
app.listen(3000);
13. TemplatingModular Routing Extensible
Jade
Handlebars
Middleware MiddlewareHTTP-Methods
Neues, noch experimentelles Framework, das auf ECMAScript
6-Features setzt (min. node-v0.11).
Bessere Unterstützung von Promises und potenzieller
Nachfolger von express.
14. var koa = require('koa');!
var app = koa();!
!
// logger!
app.use(function *(next){!
var start = new Date;!
yield next;!
var ms = new Date - start;!
console.log('%s %s - %s', this.method, this.url, ms);!
});!
!
// response!
app.use(function *(){!
this.body = 'Hello World';!
});!
!
app.listen(3000);
17. TemplatingModular Routing Extensible
own engineModules OverwritesHTTP-Methods
Im Vergleich zu express ein vergleichsweise kleines
Framework. Umfangreiche Abdeckung der Problemstellungen.
18. var framework = require('total.js');!
var http = require('http');!
!
var debug = true;!
!
framework.run(http, debug, 8005);
exports.install = function(framework) {!
framework.route('/', view_homepage);!
framework.route('/{link}/', view_detail);!
};!
!
function view_homepage() {!
var self = this;!
self.view('homepage');!
}
28. Der Node Package Manager ist seit der Version 0.6.3 Teil von
Node.js.
Installation, Update und Removal von Paketen.
Das zentrale Repo liegt unter npmjs.org.
Jeder kann Pakete veröffentlichen.
!
Jedes Paket löst seine eigenen Abhängigkeiten auf.
29. Konfigurationsdatei für ein Projekt.
Wird mit npm init erstellt.
Enthält viele Meta-Informationen und die Abhängigkeiten.
package.json
30. • node_modules: Verzeichnis, in das die Abhängigkeiten
installiert werden (sollte im VCS ignoriert werden).
!
• npm install: Installiert sämtliche Abhängigkeiten aus der
package.json automatisch.
!
• npm install --save: Trägt die Abhängigkeiten in die
package.json ein.
32. • Installation über npmjs.org
• Installation eines Pakets aus einem Verzeichnis
• Installation eines Pakets aus einer .tgz-Datei
Voraussetzung: package.json muss vorhanden sein
34. Node.js ist im Kern klein und leichtgewichtig.
Node.js ist Single-Threaded.
Node.js schlägt sich als Einzelkämpfer recht gut.
ABER: das alles hat auch seine Grenzen.
45. Performance
• Kein synchroner Code
• Keine statischen Assets - z.B. Nginx einsetzen
• Den Client rendern lassen - JSON-Kommunikation
• gzip nutzen
• Binärmodule sind schneller - z.B. mySQL