NodeJS: 12 Pakete für Entwicklerproduktivität





Prozessmanager für die Produktion mit Load Balancer. Wrapper zum Debuggen und Git-Hooks, zum Sichern von Express-Anwendungen über HTTP-Header, ein Dienstprogramm mit über 180 Funktionen zum Arbeiten mit Datumsangaben und andere Tools, mit denen Sie Zeit sparen. Diese Sammlung ist besonders nützlich für unerfahrene NodeJS-Entwickler, kann aber erfahrenen Skeptikern gefallen.



Wann immer Sie ein Problem mit Ihrem Code beheben müssen, besteht die Möglichkeit, dass bereits ein Paket zur Lösung Ihres Problems vorhanden ist. Hier ist eine Liste von Paketen, über die jeder Entwickler Bescheid wissen sollte. Betrachten Sie diese npm-Pakete als Zeitersparnis.



1. Husky



Husky macht es einfach, Hooks in Git zu implementieren. Sie können von jedem verlangen, dass er Ihren Code automatisch fusselt und testet, bevor er ihn festschreibt oder in das Repository überträgt.





Quellen Husky



Installation



yarn add husky


Anwendung



Beispiel für Haken mit husky:



// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm lint",
      "pre-push": "npm test"
    }
  }
}


pre-commitwird vor dem Festschreiben ausgeführt.

pre-pushvor dem Senden an das Repository.






2. Dotenv



Dotenv ist ein Modul ohne Abhängigkeiten. Es lädt Umgebungsvariablen aus der Datei .envin process.env . Die Konfiguration in einer vom Code getrennten Umgebung zu halten, basiert auf der 12-Faktor-Anwendungsmethode . Quellen dotenv .



Installation



yarn add dotenv


Anwendung



Schreiben requireund setzen Sie die Werte so früh wie möglich in Ihrer Anwendung dotenv:



require('dotenv').config()


Erstellen Sie eine .envDatei im Stammverzeichnis Ihres Projekts. Fügen Sie Umgebungsvariablen in neuen Zeilen als hinzu NAME=VALUE. Zum Beispiel:



DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3


process.envEnthält jetzt die Schlüssel und Werte aus der Datei .env:



const db = require('db')
db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS})





3.date-fns



Date-fns ähnelt lodash, wurde jedoch für die Arbeit mit Datteln entwickelt. Bietet einen vollständigen, aber einfachen und konsistenten Satz von JavaScript-Tools zur Datumsmanipulation im Browser und in Node.JS.





Quellen date-fns



Installation



yarn add date-fns


Anwendung



Beispiel mit date-fns:



import { compareAsc, format } from 'date-fns'
format(new Date(2014, 1, 11), 'yyyy-MM-dd')  
//=> '2014-02-11'
const dates = [  
  new Date(1995, 6, 2),  
  new Date(1987, 1, 11),  
  new Date(1989, 6, 10),  
]  
dates.sort(compareAsc)  
//=> [  
//   Wed Feb 11 1987 00:00:00,  
//   Mon Jul 10 1989 00:00:00,  
//   Sun Jul 02 1995 00:00:00  
// ]


Dokumentation mit Beispielen und Anwendungsfällen.






4. Bunyan



Bunyan ist eine benutzerfreundliche und leistungsstarke JSON-Protokollierungsbibliothek für Node.





Quellen Bunyan



Installation



yarn add bunyan


Bitte beachten Sie: Die CLI ist so bunyangeschrieben, dass sie (im Rahmen des Zumutbaren) mit allen Versionen von Bunyan-Protokollen kompatibel ist. Daher können Sie es global installieren: yarn add global bunyanum dieses Tool zu installieren PATHund dann lokale Bunyan-Installationen für Anwendungen zu verwenden.



Anwendung



Bunyan ist eine einfache und schnelle JSON-Protokollierungsbibliothek für Node.js-Dienste.



// hi.jsconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");


Folgendes wird an die Konsole zurückgegeben, wenn Sie ausgeführt werden node hi.js.










5. Ramda



Ramda ist eine praktische und nützliche Bibliothek für funktionale Stile. Es betont den reinen Funktionsstil. Unveränderlichkeit und nebenwirkungsfreie Funktionalität stehen im Mittelpunkt der Designphilosophie von Ramda. Dieser Ansatz kann Ihnen helfen, einfachen, eleganten Code zu schreiben.





Quellen ramda



Installation



yarn add ramda


Anwendung



import * as R from 'ramda'
const greet = R.replace('{name}', R.__, 'Hello, {name}!'); 
greet('Alice'); //=> 'Hello, Alice!'


Codebeispiele






6. Debuggen



Debug ist ein winziges JavaScript-Debugging-Dienstprogramm, das der Node.JS-Debugging-Technik nachempfunden ist.





Debug-Quellen



Installation



yarn add debug


Anwendung



Debug bietet eine Funktion. console.errorÜbergeben Sie einfach den Namen Ihres Moduls an diese Funktion, und es wird eine dekorierte Version zum Übergeben von Debug-Anweisungen zurückgegeben.



const debug = require('debug');
const log = debug('http:server');
const http = require('http');
const name = 'My App name';
log('booting %o', name);
http.createServer((req, res) => {
  log(req.method + ' ' + req.url);
  res.end('debug examplen');
}).listen(3200, () => {
  log('listening');
});
//   
// DEBUG=http:server node app.js


Blendet die Debug-Ausgabe für ein Modul als Ganzes oder Teile davon ein und aus.








7. Wohnung



Flat nimmt ein Objekt und glättet es. Sie können auch ein durch Schlüssel getrenntes Objekt reduzieren. [Hinweis. übers. - Nicht nur ein Punkt kann ein Trennzeichen sein.





Quellen flach



Installation



yarn add flat


Anwendung



const flatten = require('flat')
flatten({  
    key1: {  
        keyA: 'valueI'  
    },  
    key2: {  
        keyB: 'valueII'  
    },  
    key3: { a: { b: { c: 2 } } }  
})
// {  
//   'key1.keyA': 'valueI',  
//   'key2.keyB': 'valueII',  
//   'key3.a.b.c': 2  
// }







8. JSON5



Das JSON5- Datenaustauschformat ist eine Obermenge von JSON , die darauf abzielt, einige der Einschränkungen von JSON zu verringern, indem die Syntax um einige der Funktionen von ECMAScript 5.1 erweitert wird .





JSON5-Quellen



Installation



yarn add json5  
const JSON5 = require('json5')


Anwendung



Achten Sie auf die Dateierweiterung. JSON5 ist eine Obermenge, eine Erweiterung von JSON.



{
  // 
  unquoted: 'and you can quote me on that',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Look, Mom! \
No \\n's!",
  hexadecimal: 0xdecaf,
  leadingDecimalPoint: .8675309, andTrailing: 8675309.,
  positiveSign: +1,
  trailingComma: 'in objects', andIn: ['arrays',],
  "backwardsCompatible": "with JSON",
}





9. ESLint



ESLint ist ein großartiges Tool, um Fehler zu vermeiden und Codierungsstandards für Entwicklungsteams festzulegen . ESLint ist ein Tool zum Identifizieren und Darstellen von Mustern in ECMAScript / JavaScript-Code.





ESLint-Quellen



Installation und Anwendung



yarn add eslint


Richten Sie dann die Konfigurationsdatei ein:



./node_modules/.bin/eslint --init


Danach können Sie ESLint in einer beliebigen Datei oder einem beliebigen Verzeichnis ausführen, zum Beispiel:



./node_modules/.bin/eslint yourfile.js


Dokumentation mit vielen Beispielen für den Einstieg und die Einrichtung.






10. PM2



PM2 ist ein Produktionsprozessmanager mit integriertem Load Balancer. Sie können damit Anwendungen jederzeit ausführen, sie ohne Ausfallzeiten neu laden und allgemeine Systemverwaltungsaufgaben vereinfachen.





Quellen pm2



Installation



yarn add global pm2


Anwendungsstart



Sie können jede Anwendung (Node.js, Python, Ruby, Binärdateien $PATHusw.) folgendermaßen ausführen :



pm2 start app.js


Ihre Anwendung wird jetzt unter der Kontrolle eines Dämons ausgeführt und kontinuierlich überwacht und gewartet. Erfahren Sie mehr über Prozessmanagement, Schnellstart .



Und so können Sie alle laufenden Anwendungen auflisten:



pm2 ls






In der offiziellen Dokumentation finden Sie eine vollständige Liste der Funktionen und Fähigkeiten.






11. Helm



Der Helm schützt Expressanwendungen über HTTP-Header. Es ist keine Silberkugel, aber es kann helfen.





Helmquellen



Installation



yarn add helmet


Anwendung



Helmetist im Connect- Stil geschrieben und mit Frameworks wie Express kompatibel . Wenn Sie Koa-Unterstützung benötigen, siehe koa-helmet.)



const express = require("express");  
const helmet = require("helmet");
const app = express();
app.use(helmet());


Die Helmfunktion ist ein Wrapper um 11 kleinere Middleware. Mit anderen Worten, äquivalent zu



// ...
app.use(helmet());
// ... : 
app.use(helmet.contentSecurityPolicy());  
app.use(helmet.dnsPrefetchControl());  
app.use(helmet.expectCt());  
app.use(helmet.frameguard());  
app.use(helmet.hidePoweredBy());  
app.use(helmet.hsts());  
app.use(helmet.ieNoOpen());  
app.use(helmet.noSniff());  
app.use(helmet.permittedCrossDomainPolicies());  
app.use(helmet.referrerPolicy());  
app.use(helmet.xssFilter());





12. Komprimierung



Die Komprimierung ist ein Datenkomprimierungswerkzeug.





Kompressionsquellen



Installation



yarn add compression


Anwendung



Wenn Sie dieses Modul zusammen mit Express verwenden oder connecteinfach die compression()Middleware aufrufen . Anforderungen, die die Middleware durchlaufen, werden komprimiert.



const compression = require('compression')  
const express = require('express')
const app = express()
//     
app.use(compression())// ...


Mit welchen Tools arbeiten Sie mit NodeJS?



Bild


Erfahren Sie in Online-Kursen zu SkillFactory, wie Sie einen hochkarätigen Beruf von Grund auf neu aufbauen oder Ihre Fähigkeiten und Ihr Gehalt verbessern können:





E







All Articles