The Node.js Update - #Week 27 - 6 July, 2018

Below you can find RisingStack's collection of the most important Node.js news, updates & tutorials from this week:

Node v10.6.0 (Current) Released. Update now!

Notable changes:

  • dns:
    • An experimental promisified version of the dns module is now available. Give it a try with require('dns').promises.
  • fs:
    • fs.lchown has been undeprecated now that libuv supports it.
  • lib:
    • Atomics.wake is being renamed to Atomics.notify in the ECMAScript specification (reference). Since Node.js now has experimental support for worker threads, we are being proactive and added a notify alias, while emitting a warning if wake is used.
  • n-api:
    • Add API for asynchronous functions.
  • util:
    • util.inspect is now able to return a result instead of throwing when the maximum call stack size is exceeded during inspection.
  • vm:
    • Add script.createCachedData(). This API replaces the produceCachedData option of the Script constructor that is now deprecated.
  • worker:
    • Support for relative paths has been added to the Worker constructor. Paths are interpreted relative to the current working directory.

Tutorial: Building a Snipping Tool with Electron, React and Node.js

Modern web browsers allow us to access connected media devices like microphones, cameras, and screens through MediaDevices interface. Since Electron uses chromium and Nodejs, MediaDevices devices API is supported out of the box. Electron’s desktopCapturer module provides access to media sources that can be used to capture audio and video from the renderer process.

In this tutorial, I’ll show how to build a snipping tool using desktopCapturer module. We’ll use React for building our application’s user interface and Nodejs as a backend server for uploading snipped images.

Multi-server Chat in Node Without a Database

A few years back, I was consulting for a client who had a Node-based instant messaging feature which had worked pretty well at first. But the number of users grew, and then it didn’t.

Even though they had a number of load-balanced server instances running, they found that the Redis database they were using to track connected users was a big bottleneck. The team lead wondered if there might be a way to eliminate the database altogether. How else could I respond?

“Challenge accepted!”

The Art of Node: An introduction to Node.js

This great github page provides a great intro into Node.js! Table of contents:

  • Understanding node
  • Core modules
  • Callbacks
  • Events
  • Streams
  • Modules and npm
  • Client side development with npm

Cooking a Deliveroo clone with Nuxt (Vue.js), GraphQL, Strapi and Stripe

Get ready to develop a Deliveroo clone, using amazing technologies: Nuxt (Vuejs), GraphQL, Stripe and Strapi! From signup to order, you are going to let users discover restaurants, dishes and select their happy meal.

Case Study: How Bustle uses Node.js to Speed Up App Development [.PDF]

Using Node.js and AWS Lambda, Bustle serves 90+ million uniques and billions of GraphQL api responses in under 70ms. Read the benefits and challenges they've experienced with using Node.js in this case study

It's the last day to apply for the JS Interactive Diversity Scolarship!

Applicants must be from a traditionally underrepresented and/or marginalized group in the technology and/or open source communities, including but not limited to: persons identifying as LGBTQ, women, persons of color, and/or persons with disabilities; and be unable to attend without some financial assistance.

Previous Node.js Updates:

In the previous Weekly Node.js Update, we collected great articles, like

  • Threads in Node 10.5.0: a practical intro;
  • Native Extensions for Node.js;
  • Upgrading to Node v8 has significantly reduced our operating costs;
  • Hapi vs. Express in 2018: Node.js Framework Comparison;

& more...

We help you to stay up-to-date with Node.js on a daily basis too. Check out our Node.js news page and its Twitter feed!