我正在深入研究NodeJS,在Heroku上构建一个应用程序,以帮助我的学生了解几种不同编程语言的各个方面。目前,该应用可以使用the VM module's runInNewContext
方法安全地评估Javascript。我也想添加对Ruby或Python的支持。
是否可以在NodeJS应用程序的服务器端安全地评估用其他语言编写的代码,特别是Ruby或Python?
提前感谢您的智慧!
答案 0 :(得分:2)
前几天我正在玩nodejs vm,这很酷......据我所知,还没有任何内容可以用于Ruby。您可以使用node.js中的child process函数通过命令行运行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。很想知道这是如何工作的!
答案 1 :(得分:1)
您只需要在Heroku上运行multi-buildback,然后在child_process.spawn或exec运行Ruby或Python代码。当然,如果可能的话,你会想要异步这样做。