通过 R 和子进程在错误的目录中创建文件

Creating file via R and childprocess in wrong dir

我想在我的节点服务器上执行一些 R 脚本。我使用子进程,它似乎工作。我的问题是:

我如何影响结果文件的保存位置? 现在,无论我做什么,结果都会保存在我 server.js 所在的位置。

但我想自己选择存储结果的位置。 (在我的例子中,我希望结果在脚本执行的地方)

我该怎么做?

这是我的代码:

这是我在server.js中使用的:

app.post('/execScript', function (req, res) {
  var childProcess = require('child_process');
  console.log("IM IN SERVER");
  childProcess.exec('Rscript ../app/test.R', function (err, stdout, stderr) {
    if (err) {
      console.error(err);
      return;
    }
  })
});

这是来自我的 js 文件的 ajax 调用:

$.ajax({
        type: 'POST',
        data: {project: ""+currentProject+"", script: ""+script+""},
        url: url,
        success: function (content, textStatus) {}
    });

有没有办法决定结果应该保存在哪里?

任何帮助都会很棒!

可以通过an options object to exec指定当前工作目录:

childProcess.exec('Rscript ../app/test.R', {cwd: '/your/path/'}, (err) => {
    if (err) {
      console.error(err);
    }
  })