Проблема в том, что вы возвращаете результаты до запуска события. Функция вернется сразу же, но событие не сработало для pingproc.stdout.on('data');
Вам необходимо использовать обратный вызов. Что-то вроде:
modulex.commandy(function(output) { /*whatever you need w/ the output here */ });
, а затем
export.commandy = function(args, callback) {
var output;
var pingproc = spawn('ping', ['-c 1', 'host.com']);
pingproc.stdout.on('data', function (data) {
callback(data);
});
}
Это вызовет функцию, которую вы передаете в function(output) {}
каждый раз при получении данных. Кроме того, вы можете вызвать обратный вызов после получения определенного объема данных или после вызова конечного события.