私は自分のWebプロジェクトにNode.JSを使用するのが大好きですが、同時にPythonを使用するのも大好きなので、NodeからPythonスクリプトを実行できるかどうか疑問に思っていました。たとえば、Node.JSバックエンドがPythonスクリプトを呼び出します。 SQLデータベースからいくつかのデータを取得してノードに返します(ノードですべてを実行できることはわかっていますが、例を使用するだけです)。
私はこの方法でそれを行うことを考えまし
た1.ノードはPythonスクリプトが使用する変数を含むJsonファイルを作成します(例:name:Jon birthDate:1996)
2。そのJsonファイルからそれらの変数を読み取るPythonスクリプトを実行します( 1996年に生まれたJonを検索します)
3。完了するとJsonファイルを削除します
4.すすぎと繰り返し
これは、この種のことを行うための優れた安全な方法でしょうか、それともPythonスクリプトを実行して「変更」する他の方法はありますか?
ノードアプリを作成する必要がありましたが、バックエンドの計算にはNumPyとPandasを使用する方が良いように思われたので、あなたがしていることを実行しました...最終的にpython-shellというnpmパッケージを見つけました。
これはpromiseを介して機能するため、計算スクリプトを呼び出し、エラーが発生した場合は別のPythonスクリプトでクリーンアップを行います。
かなりうまくいった。コードは次のようなものでした:
const PythonShell = require('python-shell');
router.get('/calc', (req, res) => {
PythonShell.run('py/calculate.py', {pyPath: pyPath , args: [tmpPath],}, function(err, results) {
if (err) {
PythonShell.run('py/clean_up.py', {pyPath: pyPath, args: [tmpPath2]}, function(err, results2) {
if (err) throw err;
res.json(
{
message: "error: Running clean up",
ang: 0,
vec: 0,
}
);
});
} else {
let data = JSON.parse(results);
let message = data[0];
let ang = data[1];
let vec = data[2];
res.json(
{
message: message,
ang: ang,
vec: vec,
}
);
}
});
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加