2017-07-20 5 views
0

は、今私は、Node.jsの中にPythonスクリプトを起動するために、次のコードを持っている:node.js spawnを使用すると、より具体的なエラーメッセージを取得する方法はありますか?

logger.info('Spawning python process'); 
    let proc1 = spawn('python3', 
     ['experimental/paraphrase/paraphrase_detect.py', 
     results[0].answer, request.query.response]); 

    proc1.stdout.on('data', (data) => { 
     logger.info('Python script returned data'); 
     let retVal; 
     if (data) { 
     logger.info(data.toString()); 
     retVal = JSON.parse(data.toString()); 
     } 

     return response.json({data: retVal}); 
    }); 

    proc1.on('close', (code, test) => { 
     if (code === 1) { 
     const msg = 'Python exited with exit code 1 meaning there was a ' + 
      'problem executing the script.'; 
     logger.error(msg); 
     logger.error(test); 
     } 
    }); 

    proc1.on('error', (data) => { 
     logger.error('Error with calling python script'); 
     if (data) { 
     logger.error(data.toString()); 
     } 
    }); 

私が扱ってる問題は、特定のエラーメッセージは、アクセス許可の問題として、ノードに戻されていないということです、スクリプト名のスペルミス、またはPythonパッケージの欠落などがあります。私が今までにできることは、スクリプトを実行する際に問題があることを一般的に示している終了コード1をキャッチすることです。

+0

コードは既にそれを行っています。私が求めているのは、より具体的なエラーメッセージです。 – opike

+1

proc1.stderr.on( "data")を試してください – Darkrum

+0

それがありました - ありがとう@Darkrum! – opike

答えて