如何在服务器上以不同语言运行用户代码?

时间:2017-01-04 15:14:11

标签: server user-input execution

我想将一个应用程序与CodeFights相似,因为用户可以获得一组他必须编写解决方案的练习。我想出了如何使用用户JavaScript代码并使用例如Function构造函数在Node.js服务器上运行它:

try {
   var solver = new Function('arg1', 'arg2', bodyAsString);
} catch(e) {
   console.log('Function cannot be parsed');
}

这种方法的好处是求解器(...,...)函数现在只能访问全局范围,而不是它的范围。更好的还可以将其与 sandbox module

结合使用

但是,如果我想使用多种语言,那么最好的方法是什么呢?比方说,JavaScript,Python和C ++。如果我想让用户选择语言,我该如何解决这个问题呢?我是否将他的解决方案写入文件并尝试在某种沙箱模式下通过命令行执行?如果我使用Node.js作为后端,这甚至可以完成吗?

0 个答案:

没有答案