Node.js v18의 새로운 기능
9638 단어 newsjavascriptnode
글로벌 가져오기!
Node.js는
--experimental-fetch
플래그 뒤에 글로벌 가져오기가 있어 Node.js에서 기본적으로 Browser Fetch API을 사용할 수 있습니다. v18에서는 실험적인 Fetch API를 기본적으로 사용할 수 있습니다.fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => console.log(json))
(node:82823) 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 }
또한
FormData
, Headers
, Request
및 Response
개체에 액세스할 수 있습니다.웹 스트리밍 API에 대한 액세스
Node.js는 이제 Web Streaming API을 실험적으로 지원합니다.
fetch('https://dev.to/api/articles?per_page=1000&page=1')
.then(response => response.body)
.then(rb => rb.getReader())
.then(reader => {
const stream = new ReadableStream({
...
})
})
테스트 내장
이제 Node.js에 테스트 프레임워크가 내장되어 있으며
import('node:test')
에서 액세스할 수 있습니다.import test from 'node:test';
import assert from 'node:assert';
test('true is not false', async t => {
assert.strictEqual(true, !false);
});
$ node test.js
(node:83584) ExperimentalWarning: The test runner is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
TAP version 13
ok 1 - true is not false
---
duration_ms: 0.000730654
...
1..1
# tests 1
# pass 1
# fail 0
# skipped 0
# todo 0
# duration_ms 0.074570679
출력은 TAP 형식입니다.
tap
또는 faucet
CLI를 사용하여 예쁘게 인쇄할 수 있습니다.$ npm i -g tap
$ tap test.js
index.js 2> (node:84725) ExperimentalWarning: The test runner is an experimental feature. This feature could change at any time
index.js 2> (Use `node --trace-warnings ...` to show where the warning was created)
PASS index.js 1 OK 239.361ms
🌈 SUMMARY RESULTS 🌈
Suites: 1 passed, 1 of 1 completed
Asserts: 1 passed, of 1
Time: 415.463ms
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 0 | 0 | 0 | 0 |
----------|---------|----------|---------|---------|-------------------
$ npm i -g faucet
$ node test.js | faucet
(node:84914) ExperimentalWarning: The test runner is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
✓ true is not false
# tests 1
# pass 1
✓ skipped 0
✓ todo 0
✓ duration_ms 0.076367098
자세한 내용은 documentation을 참조하십시오.
바이너리!
이제 사용자는 커스텀 V8 시작 스냅샷으로 Node.js를 빌드하여 성능을 높일 수 있습니다.
평신도의 관점에서 이것은 시작 시간을 개선하기 위해 node.js 소스 코드 자체의 일부 종속성을 캐시할 수 있음을 의미합니다.
$ cd /where/is/node/source/code
$ ./configure --node-snapshot-main=marked.js # where marked.js is the source of the marked library
$ make node
// your-program.js
// globalThis.marked is now deserialized from the snapshot
// so node.js doesnt need to parse it again
// which improves startup time
const marked = globalThis.marked;
marked(/* ... */);
$ out/Release/node your-program.js
Node.js는 이를 위해 JS API에서 작업하고 있습니다. 즉, 기본적으로 Node.js 앱을 배포 가능한 바이너리로 빌드할 수 있습니다!
Node.js v18에는 몇 가지 정말 흥미로운 새 기능이 있습니다. 가져오기 API가 도착하기를 영원히 기다려 왔으며 항상 Node.js에 바이너리가 있기를 바랐습니다. 테스트 프레임워크도 깔끔합니다!
Reference
이 문제에 관하여(Node.js v18의 새로운 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/siddharthshyniben/new-in-nodejs-v18-1lmf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)