Johnny Five - http://johnny-five.io/ - is an abstraction layer for NodeJS to do GPIO and other Hardware access to multiple boards, including Arduino (via Serial port to Firmata running on the Arduino) and direct access to GPIO such as Raspberry Pi, Beagle Bone and Intel Edison. It also allows fake modules.
J5 seems to have fantastic support and has already written a very large number of libraries for special hardware, including Accelerometers and Magnetic Compasses. IMU, GPS, LCD, and more. Probably the biggest negative is that it really isn't designed to link to existing libraries. This means a large amount of code has to be re-written that already exists in C++.
- JohhnyFive Events - Events and a Gotcha / Bug on Pin events
- JohnnyFive Fake - A fake IO module to allow laptop development