#319 — Decemeber 19, 2019

Read on the Web

Node Weekly

Thanks for supporting us for another year — hopefully you've been enjoying the newsletter! Putting Node Weekly together can be challenging in the slow weeks and overwhelming in the busy ones, but ultimately we've really enjoyed seeing the Node world mature in 2019.

So what better way to end the year than with a recap of the most popular things we linked to? :-) We're back on January 9, 2020 after our holiday break and look forward to what 2020 will bring for Node!

As always, if you have any Node related links, releases, tutorials, or anything you think other readers would enjoy, hit reply and send us your ideas.

— Peter Cooper and the Cooperpress team

⬆️ The Top Links of 2019

1. What's Deno, and How Is It Different From Node.js? — Deno (an anagram of Node!) is an interesting experimental JavaScript runtime being worked on by the original creator of Node.js. It’s not 'production ready' as such, but it’s interesting to look at how Ryan has re-approached the idea of building a runtime. Amazingly, Ryan's A Look at Deno video was our second most popular link of the year too, so clearly Node Weekly fans are big fans of Ryan too :-)

Maciej Cieslar

2. Node Multithreading: What Are Worker Threads & Why Do They Matter? — Since the release of Node 11.7 this year, the worker_threads module has been enabled by default, bringing multi-threaded development as a realistic option to Node developers. A Complete Guide to Threads in Node.js was another top link this year covering the topic.

Alberto Gimeno

Monitor Node Performance with Datadog's Application Monitoring — Optimize Node app performance by using Datadog’s flame graphs to trace requests across service boundaries and identify possible errors. Plus correlate Node traces with relevant logs and metrics without switching tools.

Datadog APM sponsor

3. Node and JavaScript Testing Best Practices — A well presented collection of 30 best practices for better JavaScript testing, continuous integration, and overall quality.

Yoni Goldberg

4. Choosing The Right Node.js Framework: Next, Nuxt, Nest? — A handy examination of the differences between three popular server-side rendering frameworks.

Liz Parody

5. An Overview of What Was New in Node 12 — Node 12 landed in April and while Node 13 took its 'current' crown in October, Node 12 introduced a variety of features of note in 2019 which Adam Polak has brought together in this article of examples.

Adam Polak

💻 Jobs

Backend Engineering Position 🤘 in Beautiful Norway 🎉 — Passion for JavaScript, GraphQL, Scalability and Performance? Want to move to Norway? Join our fast growing e-commerce service Crystallize.


Find a Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers.


📚 2019's Top Node Tutorials

How to Start a Node Project — Short and sweet but there are a few neat tidbits here I wasn’t familiar with.

Phil Nash

Object.assign vs Object Spread in Node — The Object spread operator {...obj} is similar to Object.assign(), so which should you use?

Valeri Karpov

The Perfect Architecture Flow for Your Next Node Project — Outlines a set of architectural rules and best practices to consider to ensure your next Node project starts on the right path.

Piero Borrelli

Server-Sent Events (SSE): A Conceptual Deep Dive — We’re heading toward an event-driven world of data streams and APIs. This article explores how SSE came to be, how it works, and why it’s rapidly being used by devs.

Ably sponsor

When Not to Use Lock Files with Node — Package managers like npm and Yarn use lock files that track the exact, current versions of a project’s dependencies. Learn more about how they work and when not to use them here.

Dominik Kundel

What's New in ES2019: Array flat and flatMap, Object.fromEntries and More — Many ES2019 features are always available to play with in the latest version of Node, with a few more becoming available in Node 12 with V8 7.3.

Valeri Karpov

Using Async Generator Functions in JavaScript — Async generator functions are special because you can use both await and yield in them, but what are the practical uses?

Valeri Karpov

🛠 2019's Top Node Tools, Resources and Libraries

Majestic: A Zero Config GUI for Jest — An interesting tool to help make your JavaScript testing life a little easier. Try it right now by running npx majestic in the folder of any project that uses Jest for testing (assuming you have npm installed).

Raathi Kugarajan

NodeGUI: A New Way to Build Native Desktop Apps with JavaScript — An interesting new alternative to something like Electron as it’s based around Qt, the cross platform widget toolkit, rather than a browser engine.

Atul R

Alternative Libraries to Use Instead of request — This was in response to the 'request' package entering maintainence mode this year. If you're still using it, you might want to look at some options to migrate to.


New Kubernetes Course. Subscribe Today

DigitalOcean sponsor

Electron 5.0.0 Released – Then 6, Then 7.. — Electron, the popular system for building Node and Web technology based desktop apps, had a run of major level releases this year, the most recent being 7.0. The project also joined the OpenJS Foundation last week.

Electron.js Team

Dumper.js: A Better Pretty Variable Inspector — Provides a dump() method that pretty prints an object and its contents complete with colors for different data types.

Zeeshan Ahmad

Puppeteer 2.0 Released: Control Headless Chrome from Node — The popular ‘remote control’ for Chrome now uses Chromium 79, requires Node 8+, and includes new APIs for emulating timezones and media types. Screenshotting has also been improved. It deservedly continues to be one of the most popular projects in the Node space.

Google Chrome Team

Node-RED 1.0 Released — Node RED is a flow-based, visual programming tool (aimed primarily at hardware automation) that’s built on top of Node.js. Despite only reaching 1.0 after several years, it’s a mature project used in numerous real world IoT projects.

Nick O'Leary