node.jsでnode.jsを実行する方法

1.作ったきっかけ

ある時、node.jsでnode.jsを実行するプログラムを作ろうと思った。そして調べてみてevalというものがあったがセキュリティーがダメだったから。前にnode.jsでpythonを実行するプログラムを作ったのでそれを改造して作った。

2.プログラム

const {exec} = require("child_process");                          //child processモジュールをインポート
const fs = require("fs");                                         //fsモジュールをインポート
exports.run_nodejs = function(code,_function_ = function(output){  //run_nodejsという関数をモジュール化。また実行終了時に呼び出される既定の関数を定義
    return output                                                 //出力を戻り値とする
}){
    fs.writeFileSync("./node.js",code)                            //code.pyというファイルにコードを書く
    exec("node node.js",(err,stdout,stderr) => {                    //node node.jsを実行
        _function_(stdout + stderr)                               //実行終了時に呼び出される関数に出力を引数を入れる
    })
}

3.使い方

使用例

var python = require("プログラムをインストールしたアドレスを入力してください")   //プログラムをインポート
python.runpython("console.log('hello')\nconsole.log('world')");                     
//console.log('hello')
//console.log('world')を実行
//出力結果
//hello
//world

コメント

タイトルとURLをコピーしました