installModule
should be written like this:
function installModule(module_name){
var defer = q.defer();
console.log(module_name);
exec_child_process('npm install '+module_name, function(err, stdout, stderr){
if(err) {
defer.reject(err);
} else {
defer.resolve();
}
});
return defer.promise;
}
It is installModule
which should return the promise, not the callback.