Javascript 节点子进程的cwd可以';t访问子文件夹

Javascript 节点子进程的cwd可以';t访问子文件夹,javascript,node.js,child-process,subdirectory,Javascript,Node.js,Child Process,Subdirectory,我在声明子进程的当前工作目录的路径时遇到问题。我想执行一些R脚本,并将结果保存在一个文件夹中。但它不起作用 这是我的server.js中的工作代码 app.post('/execScript', function (req, res) { var childProcess = require('child_process'); var project = req.body.project; var script = req.body.script; childProcess.ex

我在声明子进程的当前工作目录的路径时遇到问题。我想执行一些R脚本,并将结果保存在一个文件夹中。但它不起作用

这是我的server.js中的工作代码

app.post('/execScript', function (req, res) {
  var childProcess = require('child_process');
  var project = req.body.project;
  var script = req.body.script;
  childProcess.exec('Rscript ../app/projects/'+project+'/Scripts/'+script+'',{cwd: '../app/'}, (err) => {
    if (err) {
      console.error(err);
    }
  })
});
请注意,cwd将所有结果保存在/app文件夹中

当我尝试以下操作时,它停止工作,并给我一个错误

app.post('/execScript', function (req, res) {
  var childProcess = require('child_process');
  var project = req.body.project;
  var script = req.body.script;
  childProcess.exec('Rscript ../app/projects/'+project+'/Scripts/'+script+'',{cwd: '../app/test/'}, (err) => {
    if (err) {
      console.error(err);
    }
  })
});
我基本上想选择/app的子文件夹,但它不起作用。 我得到以下错误:

{ Error: Command failed: Rscript ../app/projects/das_ist_ein_Test/Scripts/test.R
at ChildProcess.exithandler (child_process.js:211:12)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:885:16)
at Socket.<anonymous> (internal/child_process.js:334:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at Pipe._handle.close [as _onclose] (net.js:501:12)   killed: false,   

code: 2,   
signal: null,  
 cmd: 'Rscript ../app/projects/das_ist_ein_Test/Scripts/test.R' }
{错误:命令失败:Rscript../app/projects/das_ist_ein_Test/Scripts/Test.R
在ChildProcess.exithandler(child_process.js:211:12)
两点钟(events.js:106:13)
在ChildProcess.emit(events.js:191:7)
在maybeClose(内部/子进程js:885:16)
at套接字。(内部/子进程js:334:11)
在emitOne(events.js:96:13)
在Socket.emit(events.js:188:7)
在管道处。handle.close[as _onclose](net.js:501:12)killed:false,
代码:2,,
信号:空,
cmd:'Rscript../app/projects/das_ist_ein_Test/Scripts/Test.R'}
为什么呢? 任何帮助都将不胜感激

编辑: 我确保子文件夹存在并且我写的正确。

我得到了它。 发生此错误的原因是子进程在节点中的工作方式。当给定cwd时,您从该目录开始,然后必须移动到需要从cwd执行的文件