gpio.open should support an array of config objects in order to export multiple ports and have an elegant callback that ensures all those ports are available to use.
Contract should look something like...
gpio.open([
{ pin: 4, direction: gpio.DIRECTION.IN },
{ pin: 17, direction: gpio.DIRECTION.OUT }
], function(err, gpioPins) {
if(err) return console.log(err);
var gpioPin4 = gpioPins[0];
var gpioPin17 = gpioPins[1];
});