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. スキャフォールディングを使用してプロジェクトを作成し、開始する1.1 足場を設置する: n...
下の図は、当社のウェブサイト統計システムの訪問者詳細におけるブラウザ閲覧率を示しており、IE6 が ...
目次1. サブクエリとは何ですか? 2. 自己結合3. 自然な結合4. 外部接続1. サブクエリとは...
bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...
多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...
1. MIME: 多目的インターネットメール拡張インペリアル カレッジ オブ コンピュータ オンラ...
1. CSSは左の固定幅と右の適応幅を実現します1. ポジショニング <!DOCTYPE ht...
clear プロパティを使用してフロートをクリアすることはよくあることであり、clear プロパティ...
目次1. DOMとBOM関連1. 要素にフォーカスがあるかどうかを確認する2. 要素の兄弟ノードをす...
目次序文いくつかの一般的なビット操作ビットAND (&)ビットOR (|)ビット否定(~)マ...
最近はビッグデータで遊んでいます。友人が私のところに来て、オンラインの Tomcat が不可解に終了...
目次1. リストインターフェースの表示例2. データを表示する2.1. コンポーネントがリストに表示...
ウェブサイトを開発する場合、データを保存するためにデータベースを使用する必要があることがよくあります...
質問docker で gdb を実行すると、ブレークポイントに到達しますが、ブレークポイントに入るこ...
設定する前に、次の操作を行う必要があります。 1. まずjdk bloggerをインストールします。...