3

我正在深入研究 NodeJS,以在 Heroku 上构建一个应用程序,以帮助我的学生了解几种不同编程语言的各个方面。目前,该应用程序可以使用VM 模块的 runInNewContext方法安全地评估 Javascript 。我还想添加对 Ruby 或 Python 的支持。

是否可以在 NodeJS 应用程序的服务器端安全地评估用其他语言(特别是 Ruby 或 Python)编写的代码?

提前感谢您的智慧!

4

2 回答 2

2

前几天我在玩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一起工作。很想知道这是怎么回事!

于 2013-05-27T22:25:59.917 回答
1

您只需要在 Heroku 上运行多重构建,然后child_process.spawn或 exec 到 Ruby 或 Python 代码。当然,如果可能的话,您会希望异步执行此操作。

于 2013-05-28T01:16:19.100 回答