1. 準備1.1 プロジェクトを作成する $ npm 初期化 1.2 インストールの依存関係 $ npm i コマンダー チョーク クリップボード 1.3 エントリファイルindex.jsを作成する process.argvを見てみましょう // インデックス.js コンソール.log(プロセス.argv) 端末実行コマンド $ ノードインデックス ターミナルでは
コマンドを実行 $ ノードインデックス生成 3番目のパラメータ: generate 2. コマンドラインの記述2.1 バージョンと説明を追加する// インデックス.js const プログラム = require('commander'); program.version('1.0.0').description('シンプルなパスワードジェネレーター').parse() ターミナル実行コマンド:passgenの説明を見ることができます コマンドの実行を続けると、passgenのバージョンが表示されます。 2.2 パスワードの長さを設定するコマンドconst プログラム = require('commander'); program.version('1.0.0').description('シンプルなパスワードジェネレーター') program.option('-l --length <数値>', 'パスワードの長さ').parse() コンソールログ(プログラム.opts()) ターミナル実行コマンド:passgenのパスワード長コマンドを確認できます 端末実行コマンド: 2.2 パスワードの長さのデフォルト値を追加: 8program.option('-l --length <number>', 'パスワードの長さ', '8').parse() コンソールログ(プログラム.opts()) ターミナル実行コマンド: パスワードの長さを設定しないでください。デフォルト値の-8が使用されていることがわかります。 ターミナル実行コマンド: パスワードの長さを10に設定する 2.3 パスワード保存コマンドの設定program.option('-l --length <数値>', 'パスワードの長さ', '8') .option('-s --save', 'パスワードをpassword.txtに保存する').parse() 2.4 パスワード形式の設定: 数字なし.option('-nn --no-number', '数字を削除').parse() ターミナル実行コマンド: デフォルトでは、数字があります 端末実行コマンド: デジタルパスワードの設定とクリア 2.5 設定パスワードの形式: 記号なし.option('-ns --no-symbols', 'シンボルを削除する').parse() ターミナル実行コマンド: デフォルトではシンボルがあります 端末実行コマンド: デジタルパスワードの設定とクリア 3. コマンドラインの解析 - パスワードの作成// インデックス.js const プログラム = require('commander'); const createPassword = require('./utils/createPassword') 定数ログ = console.log program.version('1.0.0').description('シンプルなパスワードジェネレーター') プログラム .option('-l --length <数値>', 'パスワードの長さ', '8') .option('-s --save', 'パスワードをpassword.txtに保存します') .option('-nn --no-numbers', '数字を削除') .option('-ns --no-symbols', 'シンボルを削除する').parse() const {長さ、保存、数値、シンボル} = program.opts() // 生成されたパスワードを取得する const generatedPassword = createPassword(長さ、数字、記号) // 生成されたパスワードを出力する ログ(生成されたパスワード) utils/createPassword.js を作成する // パスワードを作成.js 定数アルファ = 'qwertyuiopasdfghjklzxcvbnm' 定数数値 = '0123456789' 定数シンボル = '!@#$%^&*_-=+' const createPassword = (長さ = 8、数値を持つ = true、シンボルを持つ = true) => { chars = alpha とします hasNumbers ? (文字 += 数字): '' hasSymbols ? (文字 += シンボル): '' generatePassword(長さ、文字数)を返す } const generatePassword = (長さ, 文字数) => { パスワード = '' for(let i = 0; i < 長さ; i++){ パスワード+= chars.charAt(Math.floor(Math.random()*chars.length)) } パスワードを返却 } module.exports = パスワードを作成 ターミナル実行コマンド: パスワード生成の表示 3.1 色の追加// インデックス.js const チョーク = require('チョーク'); log(chalk.blue('生成されたパスワード: ') + chalk.bold(generatedPassword)) ターミナルはコマンドを実行します: 色が変わるのがわかります 3.2 クリップボードを追加// インデックス.js 定数 clipboardy = require('clipboardy'); // クリップボードにコピー clipboardy.writeSync(生成されたパスワード) log(chalk.yellow('パスワードがクリップボードにコピーされました!')) 4. パスワードを対応するファイルに保存します// インデックス.js const savePassword = require('./utils/savePassword') // ファイルに保存 if (save) savePassword(generatedPassword) utils/savePassword.js を作成する 定数 fs = require('fs') 定数パス = require('path') 定数os = require('os') const チョーク = require('チョーク') const savePassword = (パスワード) => { fs.open(path.join(__dirname, '../', 'passwords.txt'), 'a', '666', (e, id) => { fs.write(id, パスワード + os.EOL, null, 'utf-8', ()=>{ fs.close(id, ()=>{ console.log(chalk.green('パスワードがpasswords.txtに保存されました')) }) }) }) } module.exports = パスワードを保存 ターミナルでコマンドを実行します。プロジェクト内にpasswords.txtファイルが生成され、パスワードが正常に保存されていることがわかります。 5. ローカルnpmモジュールをグローバルpassgenとして設定する// パッケージ.json 「preferGlobal」:true、 "bin":"./index.js", 端末実行コマンド: npm link コマンド: ローカル モジュールのデバッグとテストを容易にするために、npm モジュールを対応する実行中のプロジェクトにリンクします。 //index.js #!/usr/bin/env node //最初の行を追加 端末実行コマンド: 要約: 完了しました ✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️ 参考リンク: nodejs.cn/api/process… 要約するNode.js を使用してパスワード ジェネレーターを作成する方法についての記事はこれで終わりです。Node.js パスワード ジェネレーターの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
<<: MySQL レプリケーション メカニズムの原理の説明
>>: dockerでredis5.0.3をインストールする方法
1. 新しいユーザーwwweee000を作成します [root@localhost ~]# user...
Js での 2 次元配列の作成:まず、JavaScript は 1 次元配列のみをサポートしています...
目次Vueのリスナーとは何かリスナーの使い方vue リスナーウォッチVue リスナー - ディープリ...
MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...
1. dhtmlxツリー dHTMLxTree は機能豊富なツリー メニュー コントロールです。豊...
「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...
序文実際のプロジェクトの開発では、通常、プロジェクト開発フェーズ、テストフェーズ、最終オンラインフェ...
目次2. フィールドの連結2. MySQL関数の例をいくつか挙げてください。 2.1 シンボル処理2...
取引の実施REDO ログはトランザクションの永続性を保証し、UNDO ログはトランザクションのロール...
コードをコピーコードは次のとおりです。 window.location.href="zcb...
効果: アイデア:入力タイプ属性を使用して、タイプ値がテキストの場合はパスワードを表示し、タイプ値が...
ホストとコンテナ間でファイルを転送するには、コンテナの完全な ID が必要です。取得方法は以下の通り...
序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...
1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...
1. 関連ツールと画像をダウンロードするダウンロードリンクバーチャルボックス: https://do...