promptは、コマンドラインからプロンプト入力できる Node.jsのパッケージです。
$ npm install prompt prompt@0.1.12 ../../../node_modules/prompt ├── pkginfo@0.2.3 ├── colors@0.6.0-1 ├── async@0.1.18 └── winston@0.5.11
CoffeeScriptはこんな感じです。
prompt = require 'prompt' prompt.start() prompt.get ['username', 'email'], (err, result)-> console.log 'コマンドラインからの入力値:' console.log ' username: ' + result.username console.log ' email : ' + result.email
実行してみます。
$ coffee sample.coffee prompt: username: ニャルラトホテプ prompt: email: nyaruko@Lovecraft.com コマンドラインからの入力値: username: ニャルラトホテプ email : nyaruko@Lovecraft.com
prompt.get() メソッドの第1引数に、プロンプトに入力するキーを配列で指定します。第2引数には、エラーと結果(result)を引数としたコールバックを渡します。入力値はresultにキーを指定して取得できます。
入力値のバリデーションやパスワード入力(非表示)も可能です。
prompt = require 'prompt' props = [ { name: 'email' validator: /^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/ warning: '正しいEmailを入力して下さい' empty: false } { name: 'password' hidden: true } ] prompt.start() prompt.get props, (err, result)-> console.log 'コマンドラインからの入力値:' console.log ' email : ' + result.email console.log ' password: ' + result.password
変数propsを作成します。各キーをオブジェクトで指定し、プロパティを設定します。
- name:キーの名前を指定します。ユーザからの入力値を取り出す場合に使います。
- validator:入力チェックを正規表現で指定します。
- warning:入力チェックでNGだった場合の警告メッセージを指定します。
- empty:必須入力ならfalse。
- hidden:パスワード入力のように入力値を隠すならtrue。
実行結果です。
$ coffee sample.coffee prompt: email: a error: Invalid input for email error: 正しいEmailを入力して下さい prompt: email: sample@sample.com prompt: password: コマンドラインからの入力値: email : sample@sample.com password: password
promptは、hook.ioやwizardなど、27のパッケージから使われています。shouldやjshintと同じくらいでしょうか。充分使えるようです。
0 件のコメント:
コメントを投稿