Передача argv из маршрута в скрипт в Node без одинарных кавычек - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть проект с целевой страницей, которая загружает файл на сервер; затем выберите некоторые параметры, включая загруженное имя файла, и передайте их сценарию для развертывания этого файла на другом сервере. У меня проблемы с передачей имени файла в качестве параметра для сценария. Мне удалось, внутри маршрута upload.js

var fileName = util.inspect(files.upload.name);
var fileSize = util.inspect(files.upload.size);
process.argv = fileName;

И затем вызов по маршруту deploy.js

var env = Object.create(process.env);
env.package = process.argv;

, поэтому, если я пытаюсь загрузить файл с именем try.sql, он передается в массив argv как 'try.sql'. Как передать его в скрипт без одинарных кавычек?

Сценарий теперь очень прост:

cp /c/users/alex.buaiscia/Documents/Developing/node/uploads/$package /c/users/alex.buaiscia/Documents/Developing/

поэтому для уточнения возвращается:

stderr: cp: cannot stat "/c/users/alex.buaiscia/Documents/Developing/node/uploads/'try.sql'"

Весь проект находится на публичной GitHub https://github.com/buaiscia/newPKI

Спасибо!

--- обновление с текущим решением ----

///// PASSING ARGUMENT FILENAME TO SCRIPT
    var env = Object.create(process.env);
    env.package = process.argv;

    var array1 = env.package;

    console.log(array1.slice(1, -1));
    var array2 = array1.slice(1, -1);


    var command = 'sh c:/users/alex.buaiscia/Documents/Developing/node/scripts/testdeploy.sh ' + array2 + ' >> log.txt'
    console.log(command);
 exec(command, { env: env }, function(error, stdout, stderr) {
        console.log('done')
        console.log('stdout:', stdout);
        console.log('stderr:', stderr);
    });

+ testdeploy.sh

echo $(date) 'prova deployment'
echo $(date) $1
cp /c/users/alex.buaiscia/Documents/Developing/node/uploads/$1 /c/users/alex.buaiscia/Documents/Developing/node/
...