0

我有一种情况,我希望能够将某些变量传入和传出 Coffeescript 评估环境。情况如下所示:

coffee = require('coffee-script');

exports.run = function(req,res){
  var program = req.query.program;
  var inputs = req.query.inputs;
  var outputs = coffee.eval(program);
  res.json(outputs);
};

基本上,inputs它将是一个列出用户程序输入参数的对象,并将outputs这些参数传回 Web 界面以进行突出显示。

如何向沙盒 Coffeescript 环境公开变量和函数?

4

1 回答 1

0

我有一个暂时使用的解决方法。我正在让用户的 Coffeescript 程序返回一个函数,然后对其进行评估。

输入:

{ x:5, y:7 }

服务器端:

outputs = coffee.eval(program + '\nmain')(inputs,outputs);

用户代码:

main = (i,o) ->
    o.z = i.x*5 + i.y

有点乱,但暂时有效。

于 2013-04-27T23:22:35.697 回答