2016-08-18 13 views
0

私は少し流星アプリで作業しています。私は別のプログラムにいくつかのコマンドを実行し、その結果を得て、その結果をサーバー側で処理する必要があります。私は次のように同様の回答のカップルを見つけたが、彼らは私が必要かなり何じゃない:Meteor JSでBashスクリプトを実行する方法は?

Meteor JS: use external script


  1. クライアント側は、ファイルに関する情報を表示します サードパーティサービスに格納

  2. クライアントがファイルを要求すると、サーバーは他のプログラムを呼び出しますクライアントがダウンロードするためのbashこの場合は スクリプト)

  3. は、一度検索したファイルを取得するには、ファイルが利用可能である


私は#1と#3の作業を持って、マイナスいくつかの追加テスト私は#2を行う方法を理解した後に統合します。 Meteorがサーバー上にある任意のコードを実行する方法が必要なのでしょうか?

+2

子プロセスあり - https://nodejs.org/api/child_process.html#child_process_child_process – YOU

+0

@YOUありがとう、どうぞ今すぐお試しください。 – nosforever

答えて

0

このblog postは、MeteorでNPMのfibersパッケージを使用してシェルコマンドを実行する方法を示しています。あなたのbashのコードを実行するには

npm -g install fibers 

:繊維をインストールするに

// Load future from fibers 
var Future = Npm.require("fibers/future"); 
// Load exec 
var exec = Npm.require("child_process").exec; 

// Server methods 
Meteor.methods({ 
    runCode: function() { 

     // This method call won't return immediately, it will wait for the 
     // asynchronous code to finish, so we call unblock to allow this client 
     // to queue other method calls (see Meteor docs) 

     this.unblock(); 
     var future=new Future(); 
     var command="pwd"; 
     exec(command,function(error,stdout,stderr) { 
      if(error) { 
       console.log(error); 
       throw new Meteor.Error(500,command+" failed"); 
      } 
      future.return(stdout.toString()); 
     }); 
     return future.wait(); 
    } 
}); 

またjchristman:execのように、このためのAtmosphereJSパッケージのいくつかを試してみることができます。

+0

ありがとう!これも良い見えます。いくつかの実験をするつもりで、戻ってくると最高の答えを投票します:) – nosforever

+0

こんにちは@nosforever、あなたはbashスクリプトを実行することができましたか? – ryder

+0

こんにちは@Nivedit。私は以前はできなかったが、あなたは私に別のショットを与えるように納得させた。私はあなたがあなたの記事の一番上にリストアップしたウェブサイトを以前は見ていなかったので、何が必要なのかが例外的に明らかになりました。ありがとうございました! – nosforever

関連する問題