2017-12-04 2 views
0
try { 
    var output = child_process.execSync(cmd); 
} catch (ex) { 
    return 0 
} 
return output.toString() 

ので、私はときCMD =「LX -a」、誤ったコマンドやケースCMDである場合を区別したいです= "ls/home/dir"、/ home/dirは空のディレクトリなので、何も空の文字列は生成されません。 私が試したとき、どちらのケースも例外としてnodejsによって捕捉されるようです。コマンドが誤っていたか、結果がnodejsのために空の場合を区別するためにどのようにchild_process.execSync

どのように区別するのですか?

if (ex.message.indexOf("not found") >= 0) 

しかし、コマンド自体が間違っている場合にのみ、どのようなパラメータが間違っていますか?または、エラーメッセージに「見つかりません」が含まれていない他の状況はありますか?

答えて

0

あなたの肯定的なケースにスイッチケースを使用して、デフォルトのcmdのデフォルト値を使用して、デフォルトではカスタム値を返すことができます。メソッドのドキュメントから

1

アウトプロセスは時間の場合、またはゼロ以外の終了コードを持って、この方法 がスローされます。 Errorオブジェクトには、 child_process.execSync()のすべての結果が含まれます。

したがって、存在しないコマンドの場合、エラーが発生します。 それ以外の場合は、空の文字列をoutputに返します。 tryの前にoutputundefinedと設定すると、エラーが発生した場合に確認できます。

関連する問題