Intro to Node.js

By: Aadit Rahul Kamat

About Me

  • Role: Automation QA Engineer 
    
  • Team: Android Platform Team (Frontend)
  • Company: Shopee Singapore Pte. Ltd.

Background

  • Asynchronous, event-driven JavaScript runtime
  • Based on Chrome's V8 engine
  • Developed by Ryan Dahl in 2009 at Joyent Inc
  • GitHub stats:
    • No.of stars: 84.6k (35th most popular)
    • No.of watchers: 2.9k
    • No.of forks: 22.5k (Top 100)

Table of Contents

1.

Background

2.

Basics

3.

Types of Apps

4.

Walkthrough

5.

Deno

6.

References

Basics

  • Asynchronous:
    • Instructions are executed out of order, not step-by-step (sequentially)
  • Concurrent:
    • Software can do more than one thing at a time
  • Event-driven:
    • Maintains an event queue
    • Uses event loop mechanism: loop until there is a event for the queue to process

Types of Node.js apps

  1. Internet of Things (e.g. Siemens smart grid)
  2. Real-Time Chat Applications (e.g. Electron)
  3. Single Page Applications (e.g. Netflix, LinkedIn)
  4. Real-Time Collaboration Tools (e.g. Slack, Trello)
  5. Streaming Apps (e.g. Salesforce)
  6. Microservices (e.g. Paypal financial system)

Walkthrough

Deno

  • Also developed by Ryan Dahl
  • Presented as an alternative to Node
    • Runs Typescript - a version of JavaScript with optional static typing
    • Uses a simpler module system without package.json, index.js, local node_modules etc.
    • Single executable instead of a whole package management system (NPM)
    • In built support for key JavaScript features like promises and top level await
  • Mastery with Node -> Try out Deno

References

Extra Stuff (Non-JavaScript)

1. Learning How To Learn: MOOC taught by Barbara Oakley (avaliable on Coursera)

2. 80000 Hours: Great resource for Effective Altruism, how you can make a greater impact in the world

3. Ladder: Online community to support students in their professional journey

4. Wordpress: Most widely used platform to host websites - no web dev experience required

Intro to Node.js

By Aadit Kamat

Intro to Node.js

Slides for the TechTogether Atlanta Intro to Node.js workshop

  • 58