将变量传递给评估的coffeescript

时间:2013-04-27 17:46:04

标签: node.js coffeescript sandbox

我有一种情况,我希望能够将某些变量传入和传出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环境?

1 个答案:

答案 0 :(得分:0)

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

输入:

{ x:5, y:7 }

服务器端:

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

用户代码:

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

有点乱,但它暂时有用。

相关问题