Ü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 (ab 2010): etabliertes und weit verbreitetes Open Soure Web-Application-Framework (Backend) – 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.