Official release address: https://nodejs.org/en/blog/release/v18.0.0/
const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
Experimental fetch API is supported in Node's global environment. The implementation is based on undici, an HTTP/1.1 client written for Node.
At the same time, Node can now use the following global variables: fetch, FormData, Headers, Request and Response.
import test from 'node:test'; import * as assert from 'assert/strict'; test('sync test', (t) => { assert.equal(1, 1); } ); test('async test', async (t) => { assert.equal(1, 1); } );
Node download supports Web Streams API (MDN), which means Node can allow JavaScript to programmatically access data streams received over the network through the Streams API.
buffer adds Blob API. Blob encapsulates immutable raw data and can safely share these data among multiple worker threads.
Additionally, the new BroadcastChannel instance allows asynchronous one-to-many communication with all other BroadcastChannel instances bound to the same channel name.
V8 will be updated to version 10.1, which is part of Chromium 101. Compared to Node.JS 17.9.0, the following new features are included:
The Import Assertions proposal adds inline syntax to module import statements. The purpose of such assertions is to support other types of modules in a common way across JavaScript environments, starting with JSON modules.
The syntax is as follows (the recommended way to import the JSON module):
import json from "./foo.json" assert { type: "json" }; import("foo.json", { assert: { type: "json" } });
For more features