Запустите R-Script из Nodejs и Express - PullRequest
0 голосов
/ 15 мая 2018

Это моя структура экспресс-сервера

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

Я пытаюсь вызвать скрипт R из файла graph.js, как показано ниже

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 голосов
/ 26 октября 2018

Я сталкиваюсь с этой проблемой каждый раз, когда я устанавливаю "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 месяцев назад.

0 голосов
/ 15 мая 2018

Я полагаю, что он вызывается относительно graph.js вместо server.js.

Попробуйте использовать R("../scripts/test.R") с дополнительными ..

...