Javascript 如何在节点js的exec中传递多个参数

Javascript 如何在节点js的exec中传递多个参数,javascript,r,node.js,exec,child-process,Javascript,R,Node.js,Exec,Child Process,我正在使用exec库从node js express调用R-script。下面是我的代码: var exec = require("child_process").exec; var param1 = some url; var param2 = "hello"; var param3 = "world" exec('Rscript pathtoscript/myScript.R"+" "+param1+" "+param2 , function(error, stdout, stderr)

我正在使用exec库从node js express调用R-script。下面是我的代码:

var exec = require("child_process").exec;

var param1 = some url;
var param2 = "hello";
var param3 = "world"
exec('Rscript pathtoscript/myScript.R"+" "+param1+" "+param2 , function(error, stdout, stderr) {
        if (error) {
            console.log(error);
            res.send(error);
        }
        else if (stderr) {
            console.log(stderr);
            res.send(stderr);
        }
        else if (stdout) {
            console.log("RAN SUCCESSFULLY");
            res.json(stdout);
        }
    });

在上面的代码中,如果我只传递param2和param3,r脚本就能够识别它。但当我传递url时,只有url的一部分被标识为url,其余部分则不是(可能是它的长度)。请建议。谢谢

这不是一个确切的答案,但我希望它有助于调试问题

我在这里尝试的是双引号param1,并将命令与exec分开,使其更易于阅读

祝你好运

var exec = require("child_process").exec;

var param1 = "\"http:\\something\"";
var param2 = "hello";
var param3 = "world"
var command = "Rscript pathtoscript/myScript.R "+ param1 + " " + param2 + " " + param3;

exec(command, function(error, stdout, stderr) {
        if (error) {
            console.log(error);
            res.send(error);
        }
        else if (stderr) {
            console.log(stderr);
            res.send(stderr);
        }
        else if (stdout) {
            console.log("RAN SUCCESSFULLY");
            res.json(stdout);
        }
    });

您需要提供更多的上下文。什么是URL?是URL吗?你的R脚本的相关部分呢?很可能是您的命令格式不正确。您是否尝试将
console.log
命令参数记录到
exec
方法中?它是否完全按照打印的那样从命令行工作?