Expert Node.js Training anytime, anywhere

Welcome to Hey Node: Instant access to guided learning paths that help you solve hard problems fast in Node.js.

Join now
People waiting at a bus stop in front of a sign that says Node.js

Tutorial Series One: Data Brokering with Node.js

While data brokering can take many forms, it ultimately tries to solve the problem of moving data between different systems — a perfect task for Node.js. This can be done using a thin proxy API, an ETL (Extract, Transform, Load) pipeline, or a message queue. In our first course, we evaluate and write code using all three methods. We’ll also help you choose the right one for your project.

More Data Brokering with Node.js tutorials are coming soon!

What Is Data Brokering?
Often we have data available in one system and we want to work with it in a different system.
Overview: Node's Module System
Modules allow developers to better structure, reuse, and distribute their code.
What Is NPM?
Working with Node.js means we have a flourishing ecosystem of open source software and tools available to us.
What Is package.json?
Node projects keep track of dependencies and metadata in a special file named package.json in the root directory of the project.
Create a package.json File
If you're starting a project from scratch, you'll need to create a package.json file to hold important metadata about your project and record your dependencies.
What Is package-lock.json?
You may have noticed it before; you install a package using npm and suddenly a new file called package-lock.json appears in your project directory.
Install NPM Packages
Installing packages and dependencies is one of the most important tasks we accomplish using the npm Command Line Interface (CLI).
Uninstall Packages from a Project
Removing a dependency from a project is a 2-step process.
What Is Semantic Versioning (SemVer)?
The NPM ecosystem uses Semantic Versioning as the standard for version numbers.
Update a Dependency
It's important to keep your dependencies up-to-date.
What Are NPM Scripts?
An npm script is convenient way to bundle common shell commands for your project.
Restart Applications upon File Changes
We can create a custom npm script to run our project during development.
ETL Pipeline: What Are We Building?
In this series of tutorials we are going to learn about using Extract, Transform, Load pipelines for moving and processing data between systems.
What Is an ETL (Extract, Transform, Load) Pipeline?
ETL is a process of extracting data from one location, transforming it in some way, and then loading it somewhere else.
What Are Promises?
Promises make writing asynchronous code easier.
Wait for Multiple Promises
Sometimes we to need to execute multiple asynchronous operations concurrently, wait for them all to complete, and then do something with the combined result.
Use Async/Await with Promises
To write asynchronous code in a way that reads like synchronous code, we can use async/await, a feature in JavaScript.
Make API Requests with request-promise
Making HTTP requests to an external API from a server is a task you'll encounter often.
ETL: Extract Data
We will be creating the extract step in our ETL pipeline to extract the data we need from the data source.
ETL: Transform Data
Once we have the payload from our service, we can transform the data into the format we want the data in.
What Is the fs (File System) Module?
To read data from a file, we use the built-in node module fs which helps us work with the filesystem of the computer running our code.
Read/Write JSON Files with Node.js
When you want to store data between server restarts with Node, JSON files are a simple and convenient choice.
ETL: Load Data to Destination
After you have extracted and transformed your data, the final stage of an ETL pipeline is loading the data to the destination.
What Is a Stream?
Streams are a built-in Node language feature that represent an asynchronous flow of data.
Use Streams to Extract, Transform, and Load CSV Data
Using the fs module and streams, we can take a local file and perform ETL steps on it to transform the file into JSON and write it to disk.
Overview: Manage Node.js Locally
The only requirement for doing Node.js development on your local machine is having Node.js installed.
Install Node.js Locally with nvm
Using nvm (Node.js Version Manager) makes it easier to install and manage different versions of Node.js on your local development environment.
Overview: Environmental Variables
Environment variables are variables whose value is set outside the current process and provide information about the environment in which the process is running.
Set up and Test a Dot Env (.env) File
Using the dotenv package we can add a .env file to our project that serves as a central place to manage, and document, environment variables.
Join now

Join now and get instant access to all our tutorials.

Jon Church

Our instructor

Meet Jon Church, our resident Node.js subject matter expert at Osio Labs. He writes, researches, codes, and records courses that teach people the infinite possibilities of Node.js. He's also an enthusiastic supporter and contributor to the Node.js project.

In development now

Soon ...
What Is a Proxy API?
API proxies decouple the app-facing API from your backend services.
Soon ...
Use Express to Create an API Proxy Server
Express is a minimal and flexible Node.js web application framework that helps us build servers and APIs.
Soon ...
Set up an Express Server
In this tutorial we create a basic server in just a few lines of code.
Soon ...
Organize Your Code into Modules
As your application grows, you'll want to organize your code into modules to better organize and manage it.
Soon ...
Set up Routes for Your API
Routing directs an incoming HTTP request to the appropriate action in our API.
Soon ...
Overview: Streaming to HTTP Responses
In Node, HTTP requests and responses are streams.
Soon ...
Stream to an HTTP Response
In this tutorial we will use streams to efficiently send a large file as an HTTP response.
Soon ...
Optimize an Express Server
We can optimize some aspects of our API server to increase performance.
Soon ...
Add Caching and Compression
In this tutorial we will use Express middlewares to implement basic compression and in-memory caching for our server.
Dan Shaw

"The Osio Labs team has done an incredible job listening to the needs of the Node.js community, working closely with a diverse contingent of members from across the globe, to craft a training program that fits the needs of today's Node.js developer."

Dan Shaw, Global Head of Developer Relations, PayPal
Andrew Rivera

"Your videos have been awesome! Been watching the free ones off and on for the past few years. Bought a subscription recently and am getting a lot out of it!"

Andrew Rivera, Drupal Developer
Ildephonse Bikino

"Great Job @drupalizeme. U are doing great guides 4 #Drupal. I personally used their site to prepare for @acquia certified program and I won."

Ildephonse Bikino, Deputy Director for ICT in Education Projects

Through community surveys and interviews, we’re learning how to connect our tutorials with what our members want to learn:

How do you use Node.js?

Bar graph showing illustrating that survey respondents are interested in learning about using Node.js for glue code, build tools, SSR, streaming data, and serverless.

How do you learn Node.js?

“When I discover I don’t know enough about something, I consume as much knowledge as I can."

“Node for scripting is a way for us to do simple things in a lot of different places really quickly like setting up new clients or changing subscriptions.”

“Everyday learning is part and parcel with being a developer.“

“My ideal learning resource entails short-form videos with in-line code tidbits - something that won’t go out of date in a month.”

“The best learning is when explanation and practical knowledge go hand in hand.”

“A lot of tutorials tell you what you need to fix, rather than explaining why it fixes it or how you went wrong.”

"I never approach learning open-ended. I have to have a problem I'm trying to solve.”

“I typically learn under duress. Something is breaking and I need to learn how to fix it. After that, I hope I get the chance to practice.”

“Learning how you learn is super important. I like to know the naming system of a framework or technology because then I can talk about it.“

Effective tutorials get you up and running fast

  • In-depth topics and step-by-step learning aimed at real-world problem solving
  • Peer-reviewed content with markers indicating updates
  • Thorough written tutorials with video support for easy navigation and reference
  • Use case examples to quickly find your solution
  • Dedicated help desk

Who can benefit from Hey Node?

  • Intermediate to advanced Node.js users. You might work in an agency or maybe in software development.
  • Front-end JavaScripters who need a better understanding of back-end or application-layer concepts.
  • Self-starting learners who understand that tutorials with both video and written components are the most efficient way to learn and retain information.
  • Developers searching for use case examples to quickly find the solution to a specific problem.

Mind the gap

We understand that there’s a lot of free beginning Node.js tutorials but fewer intermediate and advanced ones, and we aim to fill that gap.

About Osio Labs

At Osio Labs, we’re Open Source Inside and Out. We’re deeply committed to fostering and growing communities through open source contribution—including the Node.js community. Your membership helps us give back to the Node.js community.

Access to all tutorials for only $30/month.

Up next

Be the first to know when we add new content. Sign up for our newsletter.

Join our mailing list