2

node.js と commander.js を使い始めたばかりなので、ばかげた質問かもしれません...

そのため、ユーザーに情報を尋ねる必要があるコマンド ライン ツールを作成しようとしています。シンプルに見えるので、commander.jsを使用しようとしています。問題は、スクリプトを実行すると、ユーザーが回答を入力するのを待たず、すべてのスクリプトを実行することです。どうすればこれを機能させることができますか?

コードを整理する方法は次のとおりです。

#!/usr/bin/env node

var program = require('commander');

program
    .version('0.0.1')
    .option('-c, --create', 'Create new stuff')
    .parse(process.argv);

if(program.create){
    console.log('Creating new stuff');

    program.prompt('Name of the stuff: ', function(name){
        var stuffName = name;
    });

    program.prompt('Description of the stuff: ', function(description){
        var stuffDescription = description;
    });
} 

ありがとう

4

1 に答える 1

1

最初のプロンプトからのコールバック内に2番目のプロンプトを配置する必要があります。

program.prompt('Name of the stuff: ', function(name){
    var stuffName = name;
    program.prompt('Description of the stuff: ', function(description){
        var stuffDescription = description;
    });

});

そうしないと、両方のプロンプトがすぐに出力されます。APIは非同期です。

于 2012-07-21T21:14:52.127 に答える