Javascript 如何在节点js的exec中传递多个参数
我正在使用exec库从node js express调用R-script。下面是我的代码: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)
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
方法中?它是否完全按照打印的那样从命令行工作?