我正在深入研究 NodeJS,以在 Heroku 上构建一个应用程序,以帮助我的学生了解几种不同编程语言的各个方面。目前,该应用程序可以使用VM 模块的 runInNewContext
方法安全地评估 Javascript 。我还想添加对 Ruby 或 Python 的支持。
是否可以在 NodeJS 应用程序的服务器端安全地评估用其他语言(特别是 Ruby 或 Python)编写的代码?
提前感谢您的智慧!
我正在深入研究 NodeJS,以在 Heroku 上构建一个应用程序,以帮助我的学生了解几种不同编程语言的各个方面。目前,该应用程序可以使用VM 模块的 runInNewContext
方法安全地评估 Javascript 。我还想添加对 Ruby 或 Python 的支持。
是否可以在 NodeJS 应用程序的服务器端安全地评估用其他语言(特别是 Ruby 或 Python)编写的代码?
提前感谢您的智慧!
前几天我在玩nodejs vm,这很酷……据我所知,还没有任何东西可以对Ruby 做同样的事情。您可以使用node.js中的子进程函数通过命令行运行 ruby child_process.exec(command, [options], callback)
:不确定这对您有多大用处,但以防万一:
var childProcess = require("child_process").exec;
childProcess('ruby -e "puts \'Hello World!\'"', function (err, stdout, stderr) {
console.log(stdout);
});
我没有在heroku上尝试过,但它在本地工作,我不明白为什么它也不能与python一起工作。很想知道这是怎么回事!
您只需要在 Heroku 上运行多重构建,然后child_process.spawn或 exec 到 Ruby 或 Python 代码。当然,如果可能的话,您会希望异步执行此操作。