Node18
Node 18 已经成为了 LTS 版本,让我们看看都更新了什么
1.内置了 Fetch Api
在 Node 18 版本之前,我们需要安装 node-fetch
或者 axios
去发起请求,在 Node 18 中,就不在需要安装这些了。
看下在 Node18 中如何发起请求
index.js
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then((response) => response.json())
.then((json) => console.log(json))
写完之后我们运行一下
➜ node index.js
(node:30887) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
{ userId: 1, id: 1, title: 'delectus aut autem', completed: false }
2.内置了 test 模块
之前我们要进行单元测试的时候,需要安装 Jest
、Mocha
、Chai
等等。
现在我们只需要导入自带的 test
模块。
接下来看看该如何使用他。
index.mjs
export const sum = (a, b) => a + b
test.mjs
import test from 'node:test'
import assert from 'node:assert/strict'
import { sum } from './index.mjs'
test('sum', async (t) => {
await t.test('true', () => {
assert.equal(sum(2, 8), 10)
})
await t.test('false', () => {
assert.notEqual(sum(2, 5), 8)
})
})
运行下看下结果
➜ node test.mjs
TAP version 13
# Subtest: sum
# Subtest: true
ok 1 - true
---
duration_ms: 0.621862
...
# Subtest: false
ok 2 - false
---
duration_ms: 0.135985
...
1..2
ok 1 - sum
---
duration_ms: 3.034993
...
1..1
# tests 1
# pass 1
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 7.669003
3.支持 Web Streams API
4.hmr
现在我们不再需要安装 nodemon
插件来监听文件变化 hmr 了,可以使用 --watch
来监听文件变动
node --watch index.js
5.支持 import JSON
import json from './package.json' assert { type: 'json' }
console.log(json)
该实验性功能可能会随时移除
参考
© BlackBerry.https://nodesource.com/blog/11-features-nodeJS-18-to-try (opens in a new tab)