Die 10 beliebtesten Node.js-Module im Überblick

Das offizielle Modul-Verzeichnis von Node.js namens NPM hat neulich die 100.000 Module erreicht, und damit das konkurrierende Paketsystem RubyGems übertroffen, das bisher nur knapp über 90.000 Ruby-Pakete bereit stellt. Höchste Zeit also, sich die beliebtesten Node.js-Module anhand der erhaltenen Sterne einmal genauer anzusehen.

Express #

Express ist sicherlich das bekannteste und meist verwendetste Node.js-Modul aus dem NPM-Verzeichnis, führt momentan mit 560 von der Community erhaltenen Sternen, und hält dabei einen weiten Abstand zu allen anderen Modulen.

Bei Express handelt es sich um ein performantes und von Grund aus minimalistisches Webframework, dessen Funktionsumfang sich mittels vieler ergänzender Module je nach Bedarf erweitern lässt.

Das Webframework dient als Basis vieler bedeutender Anwendungen wie Ghost CMS, NodeBB, oder EtherPad, und auch mein Webchat-Tutorial greift auf das Express-Modul zurück.

Async.js #

Async.js (kurz auch nur Async genannt) ist ein hilfreiches Modul, wenn es um das Arbeiten mit asynchronen JavaScript-Code geht. Denn diese Bibliothek stellt knapp 20 verschiedene Funktionen bereit, welche den Umgang mit Callback-Funktionen erleichtern.

Ein konkreter Anwendungsfall für Async.js wäre beispielsweise die Verarbeitung von mehreren Datenbankabfragen nacheinander oder parallel zueinander. Im Anschluss könnte dann eine weitere Funktion ausgeführt werden, welche die gesammelten Datensätze als Parameter übergeben bekommt, sobald alle Abfragen getätigt wurden. Genaueres zu diesem Anwendungsfall habe ich im Artikel Asynchrone Abfragen mit Node.js und Async.js niedergeschrieben, einschließlich Beispielcode.

Neben der Verwendung in Node.js kann Async.js übrigens auch ohne weiteres im Webbrowser verwendet werden, da die JavaScript-Datei unabhängig von anderen Modulen ist. Auf NPM hat Async.js bisher 330 Sterne erhalten, und liegt damit auf Platz 2, direkt hinter Express.

Grunt #

Grunt ist ein Aufgaben-Ausführer, der im Gegensatz zu den bisher vorgestellten Modulen nicht in eine bestehende Node.js-Anwendung geladen wird, sondern für den Einsatz als eigenständige Anwendung gedacht ist. Mit Grunt können sich wiederholende Aufgaben wie z. B. die Bündelung und Komprimierung von CSS- und JavaScript-Dateien, oder die Kompilierung einer abstrakten Stylesheet-Sprache (z.B. Stylus) zu CSS-Code automatisiert werden.

Grunt wird dabei über ein zurückgegebenes JavaScript-Objekt in einer Datei namens Gruntfile.js konfiguriert, während mit verschiedenen Plugins die benötigten Automatisierungsprogramme nachgeladen werden. Da es zahlreiche Plugins für die verschiedensten Einsatzzwecke gibt, erfreut sich Grunt großer Beliebtheit, und liegt mit 276 Sternen auf Platz drei.

Request #

Request ist ein einfacher HTTP-Client, mit dem sich mit nur wenigen Zeilen Code Anfragen über das HTTP-Protokoll verschicken und daraufhin auswerten lassen. Das Modul wurde speziell dazu entwickelt, um HTTP-Abfragen so einfach wie nur möglich tätigen zu können, und ist mit 255 Sternen auf NPM wahrscheinlich vor allem wegen seines universellen Einsatzzweckes so beliebt.

Lo-Dash #

Lo-Dash ist eine Sammlung von verschiedenen universellen Werkzeugen, insbesondere für den Umgang mit Arrays und Objekten. Die API von Lo-Dash basiert auf der von Underscore.js, bietet aber einige weitere Features. Außerdem ist Lo-Dash performanter als Unterscore.js, und es sollen nach Angaben der Entwickler regelmäßiger Updates erschienen.

Die Bibliothek kann sowohl serverseitig in Node.js, als auch clienseitig im Webbrowser eingesetzt werden. Mit bisher 249 Sternen übertrifft Lo-Dash ihre Ursprungsbibliothek Underscore.js, die nur 176 Sterne erhalten hat.

Socket.io #

Socket.io ist eine Echtzeit-Kommunikations-Bibliothek, mit der sich Node.js mit dem Webbrowser über eine WebSocket-Verbindung austauschen kann. Eine solche Echtzeit-Verbindung bietet gegenüber klassischen AJAX viele Vorteile, besonders wenn es darum geht, Informationen mit einer möglichst geringen Verzögerung zu übertragen. Außerdem kann der Server auch Daten an den Client senden, ohne dass dieser sie vorher explizit Abfragen muss.

Das geniale an Socket.io ist jedoch: Wenn ein älterer Webbrowser die WebSocket-Technologie nicht unterstützt, so wird diese Funktionalität einfach so weit wie möglich über alternative Technologien wie AJAX oder Flash Socket nachgerüstet. Insgesamt 237 Sterne hat die NPM-Community für diese Idee und deren Umsetzung an Socket.io vergeben.

Genaueres zu Socket.io findest du auch im Artikel: Socket.IO – Echtzeit-Kommunikation zwischen Server und Client

Gulp #

Gulp ist wie Grunt auch ein Aufgaben-Automatisierer, verfolgt jedoch einen anderen Konfigurations-Ansatz. Anstatt die auszuführenden Prozesse über ein JavaScript-Objekt zu konfigurieren, schreibt man die Konfiguration hier als JavaScript-Code. Dieser Ansatz ist gegenüber dem von Grunt flexibler, und ermöglicht es, die Automatisierung dynamischer zu gestallten.

Auf NPM hat das relativ neue Gulp bisher 230 Sterne erhalten, und kommt damit ziemlich nahe an die 276 Sterne von Grunt heran.

Mocha #

Mocha ist ein flexibles Test-Framework, mit dem sich das korrekte Verhalten einzelner Softwarekomponenten testen lässt. Das Modul erfreut sich großer Beliebtheit, da man sich frei entscheiden kann, welche konkrete Validierungs-Bibliothek man verwenden möchte. Außerdem kann man Mocha auch im Webbrowser verwenden, um clientseitige Tests durchführen zu lassen.

Bis zum jetzigen Zeitpunkt hat Mocha 191 Sterne erhalten, und liegt damit nur knapp unter der 200er Grenze.

Mongoose #

Mongoose ist ein funktionsreiches ODM-System für die NoSQL-Datenbank MongoDB. Es bindet alle abgefragten MongoDB-Dokummente an ein JavaScript-Objekt, was sich später ändern und daraufhin speichern lässt. Um die Synchronisierung des lokalen JavaScript-Objektes mit der Datenbank kümmert sich Mongoose, wobei nur tatsächlich geänderte Werte in der Datenbank aktualisiert werden. Auch neue Objekte/Dokummente können mithilfe eines Models auf einfache und besonders elegante Art und Weise erzeugt werden.

Mit Mongoose lassen die Datenbank-Objekte außerdem nach Datentyp und weiteren Kriterien validieren, Standardwerte festlegen, Indexes erzeugen, Verknüpfungen zwischen zwei Datenbank-Objekten herstellen, sowie viele weitere Aufgaben vereinfachen. 178 Sterne erhielt das mächtige Modul, dessen Name auf MongoDB und das gleichnamige englische Wort für die biologische Säugetierfamilie der Mangusten („Mongoose„) anspielt.

Underscore.js #

Underscore.js ist die ursprüngliche Werkzeug-Bibliothek, die später auch Lo-Dash inspiriert hat. Aufgrund der schlechteren Performance und des geringeren Funktionsumfangs ist Undercore.js mit 176 Sternen im Bereich von Node.js jedoch nicht so populär, wie Lo-Dash mit 249 Sternen. Dennoch belegt Underscore.js immerhin noch Platz 10 der NPM-Module mit den meisten Sternen, und befindet sich somit der Vollständigkeit halber als letztes in dieser Liste.

VN:F [1.9.22_1171]
Bewertung: 4.2/5 (10 Bewertungen)
Die 10 beliebtesten Node.js-Module im Überblick, 4.2 out of 5 based on 10 ratings
Regelmäßige Beiträge über Node.js

nodecodeAbonniere den kostenlosen NodeCode-Newsletter, und bleibe auf dem laufenden über neue Beiträge zum Thema Node.js. Darunter:

  • Informationen und Neuigkeiten rund um Node.js und zugehörigen Modulen
  • Vorstellung von interessanten Frameworks und Bibliotheken
  • Anleitungen und Tutorials zu Node.js und weiterführenden Technologien
  • Sowie vieles mehr...

bereits ein erster Kommentar gehe zum kommentieren

  1. Johanna /

    Auch wir haben uns mit dem beliebten Modul Express beschäftigt. Vor allem mit den Neuerungen von 3 zu 4 und darüber einen Blogartikel veröffentlicht bei dem wir auf viele Änderungen eingehen. Schaut doch mal drüber:

    http://www.flyacts.com/blog/nodejs-von-expressjs-3-zu-expressjs-4-die-neuerungen/

    Beste Grüße,
    Johanna

hinterlasse einen Kommentar