---
title: "Node v17 released"
publication: "Node Weekly"
issue: 410
published_at: "2021-10-21"
canonical_url: "https://nodeweekly.com/issues/410"
---

Plus how to cancel an HTTP request, and a headless Node based CMS. |        

#​410 — October 21, 2021 

[Read on the Web](https://nodeweekly.com/issues/410)   

Node Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/fp9qxwaybtag9kmfcoko.jpg)](https://nodejs.org/en/blog/release/v17.0.0/)  

[Node v17 (Current) Released](https://nodejs.org/en/blog/release/v17.0.0/) — Being sixteen flew by in a flash for me at least, but so too has it for Node 16 remaining the cutting edge ‘release’ line. v17 now takes over that role with Node 16 becoming an Active LTS version (as of next week, technically) to be maintained through to 2024. But what’s new in Node 17? 

- Includes OpenSSL 3.0 which reintroduces [FIPS support.](https://github.com/nodejs/node/blob/master/BUILDING.md#building-nodejs-with-fips-compliant-openssl)
- Uses the [V8 9.5](https://v8.dev/blog/v8-release-95) engine which introduces the `Intl.DisplayNames` v2 API.
- The `readline` module now has a way to read data from Readable streams.
- `npm` upgraded to v8.1.0.
- [Node v17.0.1](https://nodejs.org/en/blog/release/v17.0.1/) already dropped to fix a bug relating to building native addons. 

Bethany Nicolle Griggs and the Node.js Team   

📢 Just as we were about to hit send, [Gatsby 4.0 was released](https://www.gatsbyjs.com/blog/whats-new-in-gatsby-4/) (in final, rather than beta, form) :-) We'll feature it more in tomorrow's [JavaScript Weekly.](https://javascriptweekly.com/)  [![\](https://copm.s3.amazonaws.com/9a98218d.png)](https://dashboard.redisgreen.net/nodeweekly) 

[Secure Redis Hosting for Your Team](https://dashboard.redisgreen.net/nodeweekly) — RedisGreen includes all the latest features to help you build, along with the security, scaling and performance that teams need as they grow. 

RedisGreen sponsor   

[How to 'Cancel' an HTTP Request](https://simonplend.com/how-to-cancel-an-http-request-in-node-js/) — The so-called Abort API allows you to cancel asynchronous tasks such as in-flight HTTP requests and here’s how to use it in the latest Node.js version. Simon has also given [a 30 minute talk](https://simonplend.com/talk-improving-your-applications-with-abortcontroller/) about AbortController generally if you want to learn more. 

Simon Plenderleith   

[Understanding and Implementing OAuth2 in Node](https://www.honeybadger.io/blog/oauth-nodejs-javascript/) — OAuth2 is everywhere. From “Login With Facebook” buttons to back-end API authentication. But how does it work? 

Diogo Souza   

▶[How to Build and Sell Your Own Node-Based Web API](https://www.youtube.com/watch?v=GK4Pl-GmPHk) — Popular JavaScript screencaster Ania Kubów tackles the idea of making a Web-based API using Node and then offering access to it, for a fee, via the RapidAPI marketplace. 

Ania Kubów   

▶[Finding a Lost Song with Node and Async Iterators](https://www.youtube.com/watch?v=uTzBHPpMEhA) — Luciano got a song in his head and wanted to remember what it was. Being a programmer, of course, he didn’t just wait to figure it out but set out to code a solution by way of the Last.fm API. 

Luciano Mammino   

[How to Dockerize an Existing Node App](https://blog.appsignal.com/2021/10/19/how-to-dockerize-an-existing-nodejs-application.html) — Sticks very much to a basic, demo example. 

Ayooluwa Isaiah   

[An Engineering Leader’s Guide to OpenTelemetry](https://go.lightstep.com/register-engineering-leaders-guide-to-opentelemetry-co21?utm_campaign=node&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Don't Mix Refactorings with Behavior Changes](https://www.codewithjason.com/dont-mix-refactorings-behavior-changes/) 
Jason Swett   

🛠 Code & Tools  

[Tensei: A Node.js Headless CMS with GraphQL and REST APIs](https://tenseijs.com/) — Data is managed via the Mikro ORM and can reside in a MySQL, MongoDB, Postgres or SQLite database. The [getting started docs](https://tenseijs.com/docs/getting-started) show how quick it is to spin up a blog system with it. 

Kati Frantz-Vallie and Contributors.   

[Blitz.js: Rails-Like Framework for Monolithic, Full-Stack React Apps](https://blitzjs.com/) — A ‘batteries included’ framework built on Next.js that boasts a ‘zero API’ approach eliminating the need for a REST/GraphQL API for the data layer. 

Brandon Bayer and Blitz.js Contributors   

[Gramma: A Command-Line Grammar Checker](https://caderek.github.io/gramma/) — A CLI tool (though there is a JS API) written in Node that uses LanguageTool to provide natural language grammar checking. 

caderek   

[Take Domain Management with Node.js to the Next Level 👀 Special Offer](https://dnsimple.link/node-weekly/2021) 

DNSimple sponsor   

[JavaScript Obfuscator: A Way to Scramble Your JS Code](https://github.com/javascript-obfuscator/javascript-obfuscator) — Transforms your code into a functionally equivalent representation that’s harder to understand or modify. A lot of folks find this sort of fiddling to be of little value given it can be reversed to some extent anyway, but there’s [a Web interface](https://obfuscator.io/) if you want to give it a try. 

Timofey Kachalov, Tiago Serafim, et al.   

[vdx: An Intuitive CLI for Processing Video, Powered by FFmpeg](https://github.com/yuanqing/vdx) — Lets you perform a number of operations including crop, trim, change frame rate, convert format, run concurrent operations, and more. 

Yuan Qing Lim   

[AutoCannon 7.5: A Fast HTTP/1.1 Benchmarking Tool](https://github.com/mcollina/autocannon) — Inspired by [wrk](https://github.com/wg/wrk) and with support for HTTP pipelining and HTTPS. 

Matteo Collina    

💻 Jobs  

[Find Tech Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-nodeweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired       

🕰 **ICYMI** _(Some older stuff that's worth checking out...)_ 

- Chris Armstrong demonstrates how to add retries, timeouts and cancellation to your `fetch()` calls [_without_ including another HTTP library](https://www.chrisarmstrong.dev/posts/retry-timeout-and-cancel-with-fetch).
- Managing config files across environments can sometimes be challenging, but here's a look at how [using node-config to create Node.js configuration files can help](https://blog.logrocket.com/creating-configuration-files-node-js-using-node-config/).
- Simon Plenderleith explains how to [take advantage of promise-based APIs in Node.js](https://simonplend.com/take-advantage-of-promise-based-apis-in-node-js/).
- [This tutorial](https://www.digitalocean.com/community/tutorials/how-to-process-images-in-node-js-with-sharp) covers using the Node.js library [Sharp](https://sharp.pixelplumbing.com) to process images.     

**Got a new email?** You can [change your address here](https://nodeweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Node Weekly](https://nodeweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. Thanks! 

--- 

**Want to sponsor?** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Stop getting this newsletter.](https://nodeweekly.com/leave/*|UID|*)
