Node.js Weekly Update - November 3

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

Node v9.0.0 (Current) released on 31, October.

Notable Changes

  • Async hooks
    • Older experimental APIs have been removed.
  • Errors
    • Improvements have been made to buffer module error messages.
    • The assignment of static error codes to Node.js error continues [...]
  • Child Processes
    • Errors are emitted on process nextTick.
  • Domains
    • The long-deprecated .dispose() method has been removed
  • fs
    • The fs.ReadStream and fs.WriteStream classes now use destroy().
    • fs module callbacks are now invoked with an undefined context.
  • HTTP/1
    • A 400 Bad Request response will now be sent when parsing fails.
    • Socket timeout will be set when the socket connects.
    • A bug causing the request 'error' event to fire twice was fixed.
    • HTTP clients may now use generic Duplex streams in addition to net.Socket.
  • Intl
    • The deprecated Intl.v8BreakIterator has been removed.
  • OS
    • The os.EOL property is now read-only
  • Timers
    • setTimeout() will emit a warning if the timeout is larger than the maximum 32-bit unsigned integer.

Node v8.9.0 (LTS) released on 31, October

Notable Changes

  • doc:
    • add Gibson Fahnestock to Release team (Gibson Fahnestock)
  • deps:
    • update npm to 5.5.1 (Myles Borins)
  • http2:
    • The exposed http2 socket is no longer manipulatable (Anatoli Papirovski)
  • module:
    • support custom paths to require.resolve() (cjihrig)
  • util:
    • util.TextEncoder and util.TextDecoder are no longer experimental. There will no longer be a warning when they are used (James M Snell)

Node.js 8 Moves into Long-Term Support and Node.js 9 Becomes the New Current Release Line

We are super excited that Node.js 8 is ready for production, as it transfers into the de facto Long-Term Support release line, opening it up to a larger user base that demands stability and security (Node.js 8.9.0 is the first official Node.js 8 release to hit LTS status).

And what’s the deal with Node.js 9?
The Node.js Project also released Node.js 9.0.0 for developers who are interested in testing and experimentation. This release focuses on adding and testing new bleeding-edge features and is frequently updated. Therefore it is not recommended for those using Node.js in production.

npm does not support Node.js v9.0.0

The Node.js v9.0.0 is currently not supported by npm. Being an odd-numbered major release, it's generally not recommended for production environments, only for testing purposes.

What's new with Node.js 9?

Node.js 8.9.0 just became the LTS (Long Term Support) version of Node.js under the codename Carbon, and it will be maintained till December 31, 2019, to align with the scheduled end-of-life of OpenSSL-1.0.2. After that, Node.js 9 will serve as the base for the next LTS release, Node.js 10, which will become the active LTS version in October 2018.

This article is dedicated to the new features and fixes that ship with Node.js 9.

Biggest collection of Node Best Practices (50+)

The largest list of Node best practices has been published. All information was gathered from top-notch articles with code examples, quotes, and diagrams.
nodejs-best-practices

Lightweight job scheduling for Node.js

When you need persistence and IPC without having to set up a messaging solution, the solution is to use your database. Agenda gives you a quick and easy solution for durable task scheduling when your database is based on MongoDB.

In this article, you can learn how to set it up and how to start using it supported by examples and full documentation.

Getopts

When you want to parse command line arguments in a professional way, Getopts is the tool of choice. In this article, you can learn how to install and use it in your code.

How to create a zero dependency HTTP/2 static file server with Node.js (with examples)

Node.js launched support (v8.8.1) for HTTP/2 as part of their core. In this post, you'll be guided through the process of creating a simple HTTP/2 server to serve static files. After that, you'll see how to demonstrate some cool features like HTTP/2 PUSH.

Next.js — React Server-Side Rendering Done Right

Next.js is a minimalistic framework for server-rendered React applications.

How can Next.js can improve your life? What’s the difference between client-side rendering and server-side rendering? And when is server-side rendering good? Check it all out in this article.

Try any Node.js package right in your browser

RunKit is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including pmpkpe. Try out Node 8 here.

Refactoring an old and broken library to using async/await with TDD

In this article, you're going to learn about TDD. You'll be shown how to set up an environment for testing and integration.

This guide helps you to set up a happy continuous integration and deployment environment that ensures your software quality is high.

refactoring

Previously in the Node.js Weekly Update

In the previous Node.js Weekly Update we collected the latest news on Node.js such as how to test your Node.js APIs, Javascript V8 6.3 was released, Microsoft added multithreading to Node.js for compute-heavy apps, out NodeHero is available in Eglish and Russian, and much more. Click if you missed it!

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!