
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?
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:
- JavaScript-Kurs (12 Monate)
- - (8 )
- Java- (18 )
E
