通过 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);
}
})
我想在我的节点服务器上执行一些 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);
}
})