🥳NodeJS 18 is HERE! 3 Mind-Blowing Features You Need to Know🏎️💨
😊Meet the NodeJS 18, bringing exciting new features to make your development experience even better! With the Standalone Test Runner, you can now test your code natively, making your life easier. Fetch Experimental Support introduces the much-loved fetch function to NodeJS, while the upgraded V8 Engine 10.1 offers enhanced performance and capabilities. Embrace NodeJS 18 and enjoy the friendly boost to your coding! 🌟
1. Standalone Test Runner
Testing is crucial for managing the risk of errors in production systems. Typically, developers use popular libraries like Jest, AVA, Supertest, and MochaJS to write tests in NodeJS. However, starting with NodeJS 18, there's a native way to implement tests. You can use the new API like this:
import test from 'node:test';
import assert from 'node:assert';
test('synchronous passing test', (t) => {
// This test passes because it does not throw an exception.
assert.strictEqual(1, 1);
});
test('synchronous failing test', (t) => {
// This test fails because it throws an exception.
assert.strictEqual(1, 2);
});
You can also use the context of the test()
function to create sub-tests:
import test from 'node:test';
import assert from 'node:assert';
test('top level test', async (t) => {
await t.test('subtest 1', (t) => {
assert.strictEqual(1, 1);
});
await t.test('subtest 2', (t) => {
assert.strictEqual(2, 2);
});
});
Keep in mind that you need to use the node:
prefix when importing the test module, or NodeJS will look for it in your node_modules
as an external package.
2. Fetch Experimental Support
The community is excited about this feature because it allows developers to use the fetch
function within NodeJS. In a browser context, you can use fetch
to make requests, like this:
function getProducts() {
fetch('https://api.site.com/api/v1/products')
.then(response => response.json())
.then(data => console.log(data));
}
You can also use async/await mode:
async function getProducts() {
const response = await fetch('https://api.site.com/api/v1/products');
const data = await response.json();
console.log(data);
}
These methods work in browsers but not in server-side contexts where you might want to make requests or connect to other services via fetch
. With NodeJS 18's experimental support, you can now use fetch
in NodeJS:
const res = await fetch('https://api.site.com/api/v1/products');
if (res.ok) {
const data = await res.json();
console.log(data);
}
This means you can make requests using fetch
just like in browsers.
3. V8 Engine Version 10.1
NodeJS 18 supports version 10.1 of the V8 engine, which comes with several new features:
- Added
findLast
andfindLastIndex
methods on arrays - More improvements in the
Intl.Locale
API - The
Intl.supportedValuesOf
function
The updated V8 JavaScript engine, version 10.1, originates from Chromium 101. With this update, Node.js 18 introduces the findLast()
and findLastIndex()
vector methods, the Intl.supportedValuesOf
function, enhancements to the Intl.Locale
API, and better performance for class fields and private class methods.
These improvements provide developers with more powerful tools and better performance for their NodeJS applications. As a result, you can expect faster processing, more efficient code execution, and overall improved performance in your projects using NodeJS 18.
Conclusion
In summary, NodeJS 18 brings essential features like the Standalone Test Runner, Fetch Experimental Support, and an updated V8 Engine to enhance productivity and performance. Start using these new features if you're running an existing application on NodeJS or looking to build one from scratch. As you embrace these new features, you'll experience the benefits of the advancements NodeJS 18 has to offer.
Mình hy vọng bạn thích bài viết này và học thêm được điều gì đó mới.
Donate mình một ly cafe hoặc 1 cây bút bi để mình có thêm động lực cho ra nhiều bài viết hay và chất lượng hơn trong tương lai nhé. À mà nếu bạn có bất kỳ câu hỏi nào thì đừng ngại comment hoặc liên hệ mình qua: Zalo - 0374226770 hoặc Facebook. Mình xin cảm ơn.
Momo: NGUYỄN ANH TUẤN - 0374226770
TPBank: NGUYỄN ANH TUẤN - 0374226770 (hoặc 01681423001)
All rights reserved