У меня есть проект с целевой страницей, которая загружает файл на сервер; затем выберите некоторые параметры, включая загруженное имя файла, и передайте их сценарию для развертывания этого файла на другом сервере.
У меня проблемы с передачей имени файла в качестве параметра для сценария. Мне удалось, внутри маршрута 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/