I connected a button to the Raspberry Pi GPIO ports:
The pi-gpio node
I'd suggest using the module called onoff.
It has the ability to watch a value-file while not taxing the cpu with polling in intervals.
I made a small test-app with node.js to try out leds and buttons with it, you can check it out here.