Übersicht zu wichtigen Frameworks und Bibliotheken für Node.js

Allgemeine Frameworks und Bibliotheken

  • TypeORM: Open Source ORM Bibliothek/Microframework für TypeScript und JavaScript (MySQL/MariaDB, PostgreSQL/CockroachDB, SQLite, sql.js, MS SQL Server, Oracle, SAP Hana), unterstützt Active Record und Data Mapper patterns.
  • Sequelize: promise-based Open Source ORM Bibliothek (MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server), „easy-to-use“.
  • weitere ORM Bibliotheken: Bookshelf (PostgreSQL, MySQL, SQLite), Objection (PostgreSQL, MySQL, SQLite), Mikro-ORM, Prisma, RDB.
  • Mongoose: Object Modelling Tool für die Mongo DB
  • sqlite3: Datenbank-Treiber für SQLite
  • moment.js: Datum und Zeitangaben lesen, schreiben, anzeigen, verwalten – Luxon (ab 2018) als Weiterentwicklung von moment.js
  • os-service: Node Anwendungen als native Windows or Linux Service installieren und betreiben.

Frameworks für die Webentwicklung

  • Express: seit vielen Jahren etabliertes Open Soure Web-Application-Framework – basierend auf dem HTTP core module von Node.js, erweitert um Routing-Features und eine Plugin-Infrastruktur (Middleware-Komponenten)
  • spdy: Unterstützung von HTML2 / https
  • passport: Authentifizierung-Middleware für Express-Anwendungen
  • cookie-parser, body-parser, express-session: Support-Bibliotheken für Express-Anwendungen
  • Handlebars, Pug, EJS: Template-Engines, integrierbar in Express. Template-Engines haben insbesondere bei (technisch gesehen) statischen Webseiten eine größere Bedeutung gehabt. Bei modernen Webseiten, die auf dynamischen Komponenten basieren, spielt serverseitige Vorlagen nur noch eine untergeordnete Rolle.
  • Helmet: Security Support (HTTP headers)
  • Morgan: HTTP request logger middleware
  • Sail.Js: MVC Web-Application-Framework basierend auf Express
  • Next.js (ab 2016): Framework für serverseitiges HTML-Rendering, insbesondere in Kombination mit dem clientseitigen React Framework verwendet, bei vielen großen Webseiten im Einsatz
  • NestJS (ab 2017): jüngere Alternative zum Express-Framework, unterstützt TypeScript und Dependency Injection; Verwendung von Annotationen für Routen-Definitionen und Datenbank-Anbindung

Management von Bibliotheken

Die lokale Verwaltung und Einbindung von Frameworks und Bibliotheken erfolgt üblicherweise mit dem Node Package Manager npm, welcher bei einer Node.js-Installation mitenthalten ist. Die wichtigsten Befehle lauten:

  • npm init – Initialisierung eines neuen Projekts inkl. der Erzeugung der Projektkonfiguration package.json
    npm init -h als Kurzversion ohne Abfrage der Projektparameter
  • npm install <name> – Installation eines Packages (Bibliothek / Framework)
    npm install package1 package2 als Kurzversion für die Installation mehrerer Packages
    npm install … –save-dev als Variante für Pakete, die nur im Entwicklungsprozess verwendet werden
  • npm audit – Scann der installierten Pakete (Versionen) auf Sicherheitsschwachstellen
    npm audit fix als Variante für das automatische Einspielen neuerer Versionen, die die Schwachstellen beheben
  • npm run <name> – Start eines Skriptes, dieses muss in der Projektkonfiguration package.json definiert sein
    npm run buidl als Variante mit vordefinierten Build-Skript, z.B. „build“: „webpack“ für eine Modulbündelung mit webpack
  • npm publish – Publizieren des Projekts in einem NPM-Repository

Alternativ zu npm steht der von Facebook entwickelte Paketmanager Yarn zur Verfügung.