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 件のコメント:
コメントを投稿