Vollständige Schritte zum Erstellen eines Passwortgenerators mit Node.js

Vollständige Schritte zum Erstellen eines Passwortgenerators mit Node.js

1. Vorbereitung

1.1 Projekt erstellen

$ npm init 

1.2 Installationsabhängigkeiten

$ npm ich commander chalk zwischenablage

1.3 Erstellen der Eintragsdatei index.js

Werfen wir einen Blick auf process.argv

// index.js
Konsole.log(Prozess.argv)

Terminal-Ausführungsbefehl

$ Knotenindex

Im Terminal sehen Sie

Die Eigenschaft process.argv gibt ein Array zurück, das die Befehlszeilenargumente enthält, die beim Start des Node.js-Prozesses übergeben wurden. Das erste Element ist process.execPath. Das zweite Element ist der Pfad zur ausgeführten JavaScript-Datei. Die verbleibenden Elemente sind alle zusätzlichen Befehlszeilenargumente.

Befehl ausführen

$ Knotenindex generieren

Der dritte Parameter: generate

2. Befehlszeilen schreiben

2.1 Version und Beschreibung hinzufügen

// index.js
const-Programm = erforderlich('Kommandant');
program.version('1.0.0').description('Einfacher Passwortgenerator').parse()

Terminalausführungsbefehl: Sie können die Beschreibung von passgen sehen

Führen Sie den Befehl weiter aus: Sie können die Version von passgen sehen

2.2 Befehl zur Konfiguration der Kennwortlänge

const-Programm = erforderlich('Kommandant');

program.version('1.0.0').description('Einfacher Passwortgenerator')
program.option('-l --length <Zahl>', 'Länge des Passworts').parse()
Konsole.log(Programm.Opts())

Terminalausführungsbefehl: Sie können den Kennwortlängenbefehl von passgen sehen

Terminal-Ausführungsbefehl:

2.2 Standardwert für Passwortlänge hinzugefügt: 8

program.option('-l --length <Zahl>', 'Länge des Passworts', '8').parse()
Konsole.log(Programm.Opts())

Terminalausführungsbefehl: Legen Sie die Kennwortlänge nicht fest. Sie können sehen, dass der Standardwert -8 verwendet wird.

Terminalausführungsbefehl: Setzen Sie die Kennwortlänge auf 10

2.3 Konfigurieren des Befehls zum Speichern des Passworts

program.option('-l --length <Zahl>', 'Länge des Passworts', '8')
.option('-s --save', 'Passwort in password.txt speichern').parse()

2.4 Passwortformat konfigurieren: Keine Zahlen

.option('-nn --no-number', 'Zahlen entfernen').parse()

Terminal-Ausführungsbefehl: Standardmäßig gibt es Zahlen

Terminalausführungsbefehl: Digitales Passwort festlegen und löschen

2.5 Konfigurationskennwortformat: Keine Symbole

.option('-ns --no-symbols', 'Symbole entfernen').parse()

Terminal-Ausführungsbefehl: Standardmäßig hat es Symbole

Terminalausführungsbefehl: Digitales Passwort festlegen und löschen

3. Parsen der Kommandozeile - Erstellen eines Passworts

// index.js
const-Programm = erforderlich('Kommandant');
const createPassword = erfordern('./utils/createPassword')
const log = konsole.log

program.version('1.0.0').description('Einfacher Passwortgenerator')
Programm
.option('-l --length <Zahl>', 'Länge des Passworts', '8')
.option('-s --save', 'Passwort in password.txt speichern')
.option('-nn --no-numbers', 'Zahlen entfernen')
.option('-ns --no-symbols', 'Symbole entfernen').parse()

const {Länge, Speichern, Zahlen, Symbole} = program.opts()

// Generiertes Passwort abrufen
const generatedPassword = createPassword(Länge, Zahlen, Symbole)

// Generiertes Passwort ausgeben

log(generiertesPasswort)

Erstellen Sie utils/createPassword.js

// Passwort erstellen.js
const alpha = "qwertyuiopasdfghjklzxcvbnm"
Konstantenzahlen = "0123456789"
Konstante Symbole = '!@#$%^&*_-=+'


const createPassword = (Länge = 8, hat Zahlen = wahr, hat Symbole = wahr) => {
    let chars = alpha
    hatZahlen ? (Zeichen += Zahlen): ''
    hatSymbole? (Zeichen += Symbole): ''
    returniere generatePassword(Länge, Zeichen)
}

const generatePassword = (Länge, Zeichen) => {
    let Passwort = ''
    für(lass i = 0; i < Länge; i++){
        Passwort + = Zeichen.charAt (Math.floor (Math.random () * Zeichen.Länge))
    }
    Passwort zurückgeben
}
module.exports = Passwort erstellen

Terminalausführungsbefehl: Kennwortgenerierung anzeigen

3.1 Farbe hinzufügen

// index.js
const Kreide = erforderlich('Kreide');
log(chalk.blue('Generiertes Passwort: ') + chalk.bold(generiertesPasswort))

Terminal führt Befehl aus: Sie können die Farbänderungen sehen

3.2 Zwischenablage hinzufügen

// index.js
const clipboardy = erfordern('Zwischenablage');
// In die Zwischenablage kopieren
clipboardy.writeSync(generiertesPasswort)
log(chalk.yellow('Passwort in die Zwischenablage kopiert!'))

4. Speichern Sie das Passwort in der entsprechenden Datei

// index.js
const savePassword = erfordern('./utils/savePassword')
// In Datei speichern
if (speichern) savePassword(generiertesPasswort)

Erstellen Sie utils/savePassword.js

const fs = erfordern('fs')
const Pfad = require('Pfad')
const os = erfordern('os')
const Kreide = erforderlich('Kreide')

const savePassword = (Passwort) => {
    fs.open(Pfad.join(__dirname, '../', 'passwords.txt'), 'a', '666', (e, id) => {
        fs.write(id, password + os.EOL, null, 'utf-8', ()=>{
            fs.schließen(id, ()=>{
                console.log(chalk.green('Passwort in passwords.txt gespeichert'))
            })
        })
    })
}

module.exports = Passwort speichern

Führen Sie den Befehl im Terminal aus: Sie können sehen, dass die Datei passwords.txt im Projekt generiert wird und das Passwort erfolgreich gespeichert wurde

5. Konfigurieren Sie lokale npm-Module als globale Passgen

// paket.json
  "preferGlobal": wahr,
  "bin":"./index.js",

Terminal-Ausführungsbefehl:

Befehl npm link: Verknüpfen Sie das npm-Modul mit dem entsprechenden laufenden Projekt, um das Debuggen und Testen lokaler Module zu erleichtern.

//index.js
#!/usr/bin/env node //Füge die erste Zeile hinzu

Terminal-Ausführungsbefehl:

Zusammenfassung: Es ist geschafft ✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️

Referenzlink: nodejs.cn/api/process…

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung von Node.js zum Erstellen eines Passwortgenerators. Weitere Informationen zum Node.js-Passwortgenerator finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Erläuterung des Prinzips des MySQL-Replikationsmechanismus

>>:  So installieren Sie Redis5.0.3 im Docker

Artikel empfehlen

Eine kurze Erklärung zum sinnvollen Einsatz von Tabellen und Divs im Seitendesign

Zu Beginn dieses Artikels möchte ich die Fehler in...

Klassifizierung der Farbeigenschaften von Webseiten

Klassifizierung der Farbeigenschaften Jede Farbe ...

Kreisförmiger Fortschrittsbalken mit CSS implementiert

Ergebnisse erzielen Implementierungscode html <...

Detaillierte Schritte zur Installation von MySql 5.7.21 unter Linux

Vorwort Die am häufigsten verwendete Datenbank in...

Docker-Container-Protokollanalyse

Containerprotokolle anzeigen Verwenden Sie zunäch...

Implementierung von TypeScript im React-Projekt

Inhaltsverzeichnis 1. Einleitung 2. Nutzung Zusta...

So ändern Sie die CentOS-Serverzeit auf die Peking-Zeit

1. Ich habe ein VPS- und CentOS-System gekauft un...

Details zum Lazy Loading im Vue-Routing

Inhaltsverzeichnis 1. Was ist Lazy Loading von Ro...

9 superpraktische CSS-Tipps, die Designern und Entwicklern helfen

Im Kopf eines Webdesigners muss viel Wissen im Zus...

Einführung in Sublime Text 2, ein Web-Frontend-Tool

Sublime Text 2 ist ein leichter, einfacher, effiz...

Reine JS-Methode zum Exportieren von Tabellen nach Excel

html <div > <button type="button&qu...

In einem Artikel erfahren Sie, wie Sie mit js den Sperrfeuereffekt erzielen

Inhaltsverzeichnis Erstellen Sie eine neue HTML-D...

Detaillierte Erklärung des MySQL-Datenbankparadigmas

Vorwort: Ich habe oft von Datenbankparadigmen geh...

So ändern Sie das ROOT-Passwort in MySql8.0 und höheren Versionen richtig

Bereitstellungsumgebung: Installationsversion Red...