これは私の最初のSE質問です。通常、私はこの偉大なウェブサイトを通して何かへの答えをかなり簡単に見つけることができますが、残念なことにこの機会に私はここや他の場所で私が探しているものを見つけることができません。問題を説明しましょう:ノードから実行ファイルを実行する方法、ローカルで動作する
いくつかの数値計算を行うためのC++プログラムを作成しました。それは、コマンドライン引数を取るとstdoutに書き込みOSXを実行している私のシステムで正常に動作します。
私はこれをより簡単に試してみるためにオンラインでホストしたいので、フォームから入力を受け取り、コマンドライン引数として実行可能ファイルに渡すためにNode.jsとExpressコードを書きました。 (ここで私は2131を試してみました)私が手
const exec = require('child_process').exec;
app.post('/', function (req, res) {
var input = req.body.numberinput; //Number entered on the webpage
const child = exec('./numericcomp ' + input, {timeout: 20000}, function(error, stdout, stderr) {
//Code here writes stdout to the page
}
}
私のローカルマシン上で完全に上記の作品が、私はHerokuのにデプロイしてから入力をしようとすると:私は、次のように「factoriser」と呼ばれるバイナリを実行しますエラー:
Error: Command failed: ./numericcomp 2131 ./numericcomp: 3: ./numericcomp: Syntax error: word unexpected (expecting ")")
これはexecのコールバックに与えられます。
私は本当に何をすべきか分かりません。問題はHerokuが実行可能ファイルを正しく実行していないことです。私はHerokuの仕組みについてはあまり知られていません。ビルパックなどの情報を読んだことがありますが、バイナリを実行するだけでは非常に複雑な処理に見えます。私は1つのdynoしか持たず、子プロセスを実行できないためですか?
誰かがここで正しい方向に私を指すことができれば、私は非常に感謝されるが、私がすべてのハードワークを行っているが、最終的なハードルを乗り越えることができないようです。