Since nodejs is single threaded, you'll get the best results with synchronous logic. Even asynchronous systems are difficult to design in real life, so it's not a bad idea to use nodejs.
Thus,the I/O arguments of every hardware component are extensions to EventEmitter, resulting in quite an amazing simulation.