2017-02-03 5 views
0

私の子プロセスの現在の作業ディレクトリのパスを宣言する際に問題があります。いくつかのRスクリプトを実行したいので、その結果をフォルダに保存します。しかし、それは動作しません。ノードの子プロセスのcwdがサブフォルダにアクセスできない

これは、CWDは/ appフォルダのフォルダ内のすべての結果を保存することを、私のserver.js

app.post('/execScript', function (req, res) { 
    var childProcess = require('child_process'); 
    var project = req.body.project; 
    var script = req.body.script; 
    childProcess.exec('Rscript ../app/projects/'+project+'/Scripts/'+script+'',{cwd: '../app/'}, (err) => { 
    if (err) { 
     console.error(err); 
    } 
    }) 
}); 

ノートのコードを働いています。

私が以下を試してみると、動作が停止し、エラーが表示されます。

app.post('/execScript', function (req, res) { 
    var childProcess = require('child_process'); 
    var project = req.body.project; 
    var script = req.body.script; 
    childProcess.exec('Rscript ../app/projects/'+project+'/Scripts/'+script+'',{cwd: '../app/test/'}, (err) => { 
    if (err) { 
     console.error(err); 
    } 
    }) 
}); 

私は基本的に/ appのサブフォルダを選びたいと思うし、うまくいきません。 次のエラーが発生します。

{ Error: Command failed: Rscript ../app/projects/das_ist_ein_Test/Scripts/test.R 
at ChildProcess.exithandler (child_process.js:211:12) 
at emitTwo (events.js:106:13) 
at ChildProcess.emit (events.js:191:7) 
at maybeClose (internal/child_process.js:885:16) 
at Socket.<anonymous> (internal/child_process.js:334:11) 
at emitOne (events.js:96:13) 
at Socket.emit (events.js:188:7) 
at Pipe._handle.close [as _onclose] (net.js:501:12) killed: false, 

code: 2, 
signal: null, 
cmd: 'Rscript ../app/projects/das_ist_ein_Test/Scripts/test.R' } 

なぜですか? ご協力いただければ幸いです!

EDIT: サブフォルダが存在し、正しく書いていることを確認しました。

答えて

0

私はそれを得ました。 ノードで子プロセスが動作するため、エラーが発生します。 cwdが与えられたら、そのディレクトリで起動し、その後、あなたが実行する必要のあるファイルに移動する必要があります。

関連する問題