Я пытаюсь выполнить скрипт из nodejs кодаВыполнение сценария оболочки из кода
//test.sh
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26-linux-x64.tar.gz
tar -zxvf node-v0.10.26-linux-x64.tar.gz
mv node-v0.10.26-linux-x64 node-v0.10.26
sudo cp -r node-v0.10.26 /usr/local/src
//app.js
var exec = require('child_process').exec;
var execProcess = require("./exec_process.js");
execProcess.result("sh test.sh", function(err, response){
if(!err){
console.log(response);
}else {
console.log(err);
}
});
//exec_process.js
var exec = require('child_process').exec;
var result = function(command, cb){
var child = exec(command, function(err, stdout, stderr){
if(err != null){
return cb(new Error(err), null);
}else if(typeof(stderr) != "string"){
return cb(new Error(stderr), null);
}else{
return cb(null, stdout);
}
});
}
exports.result = result;
После выполнения app.js, я не в состоянии видеть что-либо в ответ. Что я здесь делаю неправильно?
является ехес переменным внутри вашего app.js вашего child_process экземпляра? Я использую метод spawn. Если вы хотите увидеть какой-то ответ, вы должны отправить что-то на консоль. – jmugz3
Вы пытались вместо того, чтобы ставить 'sh test.sh' просто поместить свой путь относительно рабочего каталога. Также проверьте свои права на выполнение. – jmugz3
** sh test.sh ** работает для меня – user4324324