从Nodejs和Express运行R脚本

时间:2018-05-15 20:01:59

标签: node.js express npm rscript

这是我的快递服务器结构

--routes
 ----index.js
 ----graph.js
--scripts
 ----test.R
--server.js

我试图从graph.js文件中调用R脚本,如下所示

router.get('/test',function(req,res,next){
    var R = require("r-script");
    var out = R("./scripts/test.R")
              .data()
              .callSync();   
    res.send(out);
});

但是我收到以下错误

TypeError: Cannot read property 'data' of undefined.

非常感谢任何帮助。 感谢

2 个答案:

答案 0 :(得分:1)

我认为相对于graph.js而不是server.js来调用它。

尝试使用R("../scripts/test.R")加上.

答案 1 :(得分:0)

每次安装“ r-script”时,我都会遇到此问题,但很久以前我就在这里找到了解决方案:https://github.com/joshkatz/r-script/pull/20/commits/1eb0c33628360957f0dd589b92e804fba15891d5

只需将return _.bindAll(obj, "data", "call", "callSync");替换为:

  _.bindAll(obj, "data", "call", "callSync");
  return obj;

在文件node_modules/r-script/index.js

希望即使您在5个月前提出要求,我也能为您提供帮助。