2013-07-18 20 views
8

node.jsを使用してローカルファイルシステムにアクセスするデスクトップWebアプリケーションを作成しています。私は現在、node.jsを使用して、ハードドライブ上の別の場所にファイルを開いたりコピーしたりすることができます。また、ファイルタイプに関連付けられたアプリケーションを使用して特定のファイルを開くこともできます。言い換えれば、ユーザーがWindows環境で "myfile.doc"を選択すると、そのファイルと共にMSWordが起動します。node.jsから外部アプリケーションを起動します。

私はnode.jsと通信する子プロセスの産出以外何も見つけることができなかったので、私は用語の犠牲者でなければなりません。私は、ユーザーが見るためのファイルを起動し、そのファイルで何をするのかを決定させたいだけです。

おかげ

答えて

11

次のコマンドを使用すると、コールバックパラメータを追加する必要がありますエラーまたは任意の望ましくない出力

を示さないことを保証するために、この

var cp = require("child_process"); 
cp.exec("document.docx"); // notice this without a callback.. 
process.exit(0); // exit this nodejs process 

ことない安全な思考を行うことができます child_process.exec(cmd,function(error,stdout,stderr){})

次はイベントの操作が可能なので、スクリプトの実行をブロックしたり、使用したりすることはありません「master」スクリプトから生成したプロセスからの出力を起動して処理する外部node.jsスクリプトの名前です。

+0

ありがとうございました。私はprocess.exit(0)を追加する必要はありませんでした。なぜなら、含まれているノードのアプリケーションがなくなるはずがないからです。 –

4

以下の例では、ファイルhello.jsを編集するためにtextmate "mate"コマンドを使用しましたが、child_process.execで任意のコマンドを実行できますが、ファイルを開くアプリケーションでコマンドラインオプションを指定する必要があります。 '出口が' と呼ばれる場所に

var exec = require('child_process').exec; 
exec('mate hello.js'); 
1
var childProcess = require('child_process'); 
childProcess.exec('start Example.xlsx', function (err, stdout, stderr) { 
     if (err) { 
     console.error(err); 
     return; 
    } 
    console.log(stdout); 
    process.exit(0);// exit process once it is opened 
}) 

強調。これはウィンドウで正しく実行されます。

+0

これはionic2アプリのクライアント側で使用できますか?ビルドではchild_processが見つかりません。ありがとう – Marie

関連する問題