Как передать несколько параметров в Exec в узле JS

1

Я использую библиотеку exec для вызова R-скрипта из узла js express. Ниже мой код:

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-адрес, а отдых не является (может быть, его длинным). Пожалуйста, предложите. Спасибо

  • 0
    Вы должны предоставить больше контекста. Какой URL? URL закодирован ? Как насчет соответствующих разделов вашего сценария R? Скорее всего, ваша команда искажена. Вы пытались console.log ваш аргумент команды для метода exec ? Работает ли он из командной строки именно так, как печатается?
Теги:
exec
child-process

1 ответ

0

Это не точный ответ, но я надеюсь, что это поможет отладить проблему;

То, что я пытался сделать здесь, это double quote 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);
        }
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню