In-Person Training

Getting Started with Node.js

O’Reilly’s Boston Training Center, Boston, MA

See ticket options

Course limited to 40 people. Sign up before it sells out!

If you write backend code and want to find out how Node.js can complement your stack—or if you write frontend JavaScript and want to learn how to leverage your skills on the server—this training is for you. Join Sequoia McDowell for an example-rich overview of the Node ecosystem. You’ll work hands-on with some of the most popular Node.js libraries and frameworks, and you’ll leave with a working application or two.

Studies have shown that interruptions (like your busy workload) negatively impact learning and memory functions. In this live in-person training, you’ll enjoy uninterrupted time to focus on the material you’re learning. You’ll also have the opportunity to meet others in your field so that next time you have a problem to solve, you’ll have a strong network of colleagues to reach out to. Participants get ongoing access to all the slides and code examples for reference in the weeks after the training.

What you’ll learn—and how you can apply it

By the end of this live, in-person course, you’ll understand:

  • The Node.js ecosystem and code management tools, making it easy to quickly orient to a new Node.js project
  • JavaScript, especially scope, callbacks, and other key concepts
  • When to use Node: replatforming vs. complementing your current stack
  • Core libraries, reading files, parsing URLs, resolving paths, and the Noder’s toolbox
  • NPM and the Node ecosystem (plus some NPM tricks)
  • Async (plus one weird trick for handling high throughput on a single thread)

And you’ll be able to:

  • Find, consume, and create Node modules
  • Use Mongo and MySQL in Node.js
  • Build a web server using Express.js
  • Leverage Node’s asynchronous programming paradigm for highly-performant applications with minimal overhead
  • Write Express.js web applications and connect them to MongoDB and MySQL data
  • Determine when Node.js is a good choice, and when it’s a costly detour

This course is for you because…

  • You’re a front-end developer ready to go full-stack but not sure where to start
  • You are an experienced Java/Python/PHP programmer and want to keep your skills up to date and learn what Node has to offer
  • You are a dev manager and your developers are clamoring for Node; you need to know whether it’s worth the investment

Prerequisites:

  • Basic JavaScript skills or experience with another language
  • Know how to write and call a function

Requirements

Before the course, download and install:

About your instructor

Sequoia McDowell

Sequoia McDowell is a software engineer-cum-educator specializing in Node.js. He’s spoken at national programming and IT conferences on topics ranging from testing to build tools to encrypted communication, and he’s one of the few JavaScript educators with the distinction of having run Node.js trainings in every time zone in the continental United States. As a member of the NodeSchool community, Sequoia has extensive experience teaching people about Node.js.

Feedback about the instructor:

“Great job of efficiently explaining and visualizing concepts in minimalistic fashion—and having the start / done repos per slide deck!”

“Great work with the slides and exercises. I can tell a lot of thought was put into it and it shows. It was great how Sequoia kept walking around seeing if we had any questions.”

“You walking around asking if people needed help was pretty awesome, considering most of the dev folks (read ’me’) can be a bit introverted, and not ask for help outright.”

Course outline

  • Day One
  • Node Intro (30 min)
    • When to use Node.js and when not to use it
    • Key differences from Ruby, Java, etc.
    • Event loop overview (more later)
    • In this section, you’ll:
      • – Write a web server with Node.js core libraries
      • – Run node.js at the command line
      • – Execute javascript using the Node.js REPL (console)
  • Javascript Review (60 min)
    • Datatypes in Javascript
    • Functions as “first class citizens”
    • Scope and hoisting in JavaScript
    • Node.js vs. JavaScript vs. Browser APIs
    • In this section, you’ll:
      • – Learn where to find help and how to get unstuck when writing JavaScript
      • – Understand the differences and commonalities between the Node.js environment and browser environment
      • – Learn what types can and cannot do in JavaScript
      • – Practice idiomatic creation and use of functions in JavaScript
      • – Understand the significance of expressions vs. declarations
      • – Learn to avoid common pitfalls of scope & hoisting
  • Break (30 min)
  • Async Flow Control in Javascript (90 minutes)
    • Non-blocking I/O: the foundation of programming in Node.js
    • Callbacks, Event emitters, and Promises: async flow-control paradigms in Node.js
    • “Callback hell” and how to mitigate it
    • The relationship between scope and asynchronous code
    • The event loop, the single-threaded model, and the concepts behind asynchronous programming
    • In this section, you’ll:
      • – Write & use event-emitters
      • – Write & use Promises
      • – Convert callback-based code to Promises
      • – Learn how to choose an appropriate tool for async flow control
  • Break (30 min)
  • Node Core APIs (90 min)
    • Node.js core libraries including:
      • – HTTP
      • – Filesystem & Path
      • – Working with the running process & environment
      • – Streams
    • In this section, you’ll:
      • – Write an HTTP server with multiple routes
      • – Learn to set HTTP headers & metadata
      • – Work with callbacks & learn how to write proper node-style callback functions
      • – Write code to read, write, and append to files
      • – Alter the behavior of a program with CLI arguments & environment variables
      • – Combine Filesystem and HTTP modules to create a static file server
  • Node Ecosystem & NPM (90 min)
    • The node module loading system
    • Common Node.js module patterns
    • Modules in ES6
    • Installing & using external dependencies in a program
    • Package.json & configuring a node.js project
    • Semver (semantic versioning) and Semver ranges
    • In this section, you’ll:
      • – Write modules in several different styles
      • – Export functions from modules & consume them elsewhere
      • – Learn where to find and how to evaluate external modules to speed up development
      • – Install & use global packages
      • – Build a simple restart-server-on-file-change watch workflow
      • – Automate tasks with NPM scripts
      • – Create & edit node.js packages
  • Day Two
  • Express.js I: Working with Request, Response, & Routers (90 min)
    • What express does & what alternatives exist
    • Middleware overview: what is it & how it works
    • The Request & Response objects & how they differ from their Node core equivalents
    • Organizing an express app & using the 4.0 Router module
    • Using routes, route variables, and wildcards
    • Templating with Pug (formerly “Jade”)
    • In this section, you’ll:
      • – Create and run a web server using Express
      • – Refactor Node HTTP servers into Express
      • – Routing requests to functions by path, wildcard path, and route variables
      • – Work with Express Request to read data, query data, and metadata from users
      • – Work with Express Response to send files, set headers, encode JSON, and more
      • – Externalize routing logic with the 4.0 Router module
  • Break (30 min)
  • Express.js II: Middleware, Error Handling, and Templating (90 min)
    • Middleware hands-on: How it works, how to write it, how to use it
    • Using middleware to transform requests & responses or trigger side effects
    • Handling errors in Express
    • Using the Pug (formerly Jade) templating engine with Express
    • In this section, you’ll:
      • – Write an API server that parses and consumes JSON
      • – Write a custom, pluggable middleware to log web server activity
      • – Refactor yesterday’s static file server using built-in middleware
      • – Connect a template engine to Express & render HTML
      • – Refactor a JSON only API server to serve HTML using templates
  • Break (60 min)
  • Databases & ORMs I: Working with MariaDB (MySQL) in Node.js (90 min)
    • Datastore overview: What’s available & how to choose an appropriate solution for your project
    • Sequelize: SQL ORM for Node.js
    • Working with Sequelize: Models & Relationships
    • Working with Sequelize: Database CRUD (create, read, update, delete)
    • Writing complex queries via the Sequelize ORM
    • Schemas & Migrations
    • In this section, you’ll:
      • – Configure a node.js application with Sequelize to connect to a local or remote database
      • – Automatically migrate schemas into a new MariaDB database
      • – Create Sequelize models with relationships
      • – Query data using the Sequelize ORM
      • – Update our Express application to connect to a MariaDB database
      • – Update web application to create, get, and delete records from a SQL database
      • – Use the Promises API in Sequelize & Express
  • Break (30 min)
  • Databases & ORMs II: Working with MongoDB in Node.js (90 min)
    • MongoDB overview: what is a “Document Store”? What’s an ODM?
    • MongoDB: when to use it
    • Mongoose: Mongo ODM for Node.js
    • Working with Mongoose: Schemas and Models
    • Working with Mongoose: Relationships Populating & using sub-documents
    • Querying data with Mongoose
    • In this section, you’ll:
      • – Configure a node.js application with Mongoose to connect to a MongoDB server
      • – Automatically migrate schemas into a new MongoDB database
      • – Update our Express application to connect to a MongoDB database
      • – Create Mongoose Models & Schemas with sub-documents and “populating”
      • – Query data using the Mongoose ODM
      • – Update web application to create, get, and delete records from a MongoDB database
      • – Use the Promises API in Mongoose & Express

Venue

The course will be held at the O’Reilly Boston Training Center: 2 Avenue de Lafayette, 6th floor, Boston, MA 02111

Lunch will be provided.

Travel discounts

Rental Car Discounts

Hertz

If you need a rental car while attending the conference, you may go to the Hertz Interactive Reservation System to receive the special O’Reilly discount on rental cars for the conference. Or call Hertz Reservations at (800) 654-3131 and mention code #01XY0041.

United Airline Discount

United

To receive your 3%–10% Discount on United Airlines flights to our event, you can book online at united.com and provide discount Code ZVUR591372. Or, for a $25 service fee you can call United Meetings at (800) 426-1122 where a ticketing agent can help you by phone.

Group tickets

Working as a team? Learn as a team.

Taking this course as a team ensures that everyone is on the same page and understands both the immediate and long-term and immediate goals of your project. Exploring new ideas and collaborating on exercises together is a great team-building experience; everyone on your team will have the opportunity to ask questions, discuss use cases, and learn from other participants.

For group tickets and enterprise licensing, please contact training@oreilly.com

Code of Conduct

All participants must follow our Code of Conduct, the core of which is this: an O’Reilly events should be a safe and productive environment for everyone. Read more

O’Reilly Media, Inc. assumes no responsibility or liability for the facilities or services provided by the vendors and suppliers. Anyone attending this conference releases O’Reilly from any and all claims that may arise out of attending at this conference.

Thanks for signing up!
We protect your privacy.
Thanks for signing up!
We protect your privacy.