160 likes | 264 Views
http:// winnipegjs.com For questions tweet @ winnpegjs Michael Yagudaev - @ yagudaev Peter Braun. Intro to Node.js Winnipeg.js. Introductions. Introduce yourself Your name What you do for a living? How does Javascript fit into your life? What do you expect to get from this group?.
E N D
http://winnipegjs.com For questions tweet @winnpegjs Michael Yagudaev - @yagudaev Peter Braun Intro to Node.jsWinnipeg.js
Introductions • Introduce yourself • Your name • What you do for a living? • How does Javascript fit into your life? • What do you expect to get from this group?
About This Group • Javascript user group • Purpose:teach, learn, explore and build a strong community around javascript • Goal is to help each other improve by making the right connections. • Monthly meetups
Format of Meetings • Introduction • Main Talk • Questions during presentation • Twitter questions. Tweet @winnipegjs • Demo(s) – things you (yes as in you) are working on that are related to JS
Outline • Intro to Node.js (Michael Yagudaev) • Why Node • When to Use it and when not to 2. Intro to Express.js (Peter Braun)
Intro to Node.js • Node.js is a set of networking libraries for Javascript. • Built on top of V8 – Google’s Virtual Machine for Javascript. • Introduced by Ryan Dhal in 2009 • Current version is 0.89 • Uses an async non-blocking event driven model
Why is it so epic? • Built for highly scalable systems • Good for I/O bound applications • Allows for concurrent programming without the use of threads (threads === evil) • Makes developing soft real-time applications easy • Can take advantage of multiple cores by using the cluster module
Why is it so epic? (continued) • Share code between client and server
When should I use Node? • Soft-real time applications • JSON APIs and NoSQL DBs • Socket.IO • Single-page application • Mobile App Backend • Great for handling large loads and real-time updating • Unix command-line tools • Streaming Data
When NOT to use it? • CPU bound/intensive applications • But can easily write a C module (similar to Python) • Simple CRUD applications • Rails or Django are a better choice (for now) • SSL Services • Poor performance from Crypto library being looked at 0.9.x
Tool Chain • Npm – Node Package Manager, similar to gems in ruby, lets you download additional libraries for node. • NVM – Node Version Manager, similar to Ruby’s RVM. Helps manage versions of node. • node(1) – interactive command-line REPL • Text-editor (Sublime) – for writing code • IDE (WebStorm) – for heavy lift debugging
Intro to Express.js • Peter Bruan • Works at DMT • Mobile Web Application Development
Suggestions • What do you think we should do? • What would be a good way to stay in touch even after meetups? • What topics would you like to see covered? • Feel free to tweet us your suggestions @winnipegjs