1. • Areas of use
• Who uses it
• Concepts
• Architecture
• Demos
Marc Bachmann, @mrbrookman
2. Area of use
Mobile Applications
NodeApp
Internet of Things /
Home automation
johnny-five, ble, node-hid
Web Applications
express, sails.js, hapi.js, SocketStream, meteor
Task runners
Deployment tools
task runners: grunt, gulp
deployment: nscale, longshoreman
Command line tools
#!/bin/env node, inquirer, minimist
Desktop Applications
atom-shell, node-webkit
3. “Velocity was the key driving point for PayPal’s move to Node.
We found it enabled a huge boost to our workflow allowing us
to iterate faster and innovate more.”
~ Jeff Harrel, Director of Engineering at PayPal
4. Concepts
• CommonJS, require(‘./file’) for file.js & file.json, require(‘./directory’) for /directory/index.js
• Async, callbacks, events
• Buffers, binary data (blob)
• Core modules, fs, http, utils, events, …
• EventEmitters, event listener
• Streams, a combination of EventEmitters & Buffers
5. Architecture
• Modularize the application,
prevent large, coupled modules
it will be easier to test
• Prevent monolithic applications
• Split up in (Micro)services
• Only use JavaScript where it performs good
Do not execute encryption in Node. At least not synchronous. That blocks the whole application.
Use nginx for ssl.
6. Demo time
• Standard web server
• .. using express
• Desktop application using atom-shell
• Command line utility
• Connect to a Bluetooth LE beacon (lightblue bean)
• VOIP registering & listen for calls