From f638c28e9ff751c7e6ba36c8f2c99d720d6190ff Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Fri, 13 Dec 2024 05:08:10 +0000 Subject: [PATCH 1/2] chore: synced translations from crowdin --- apps/site/pages/fa/about/index.mdx | 16 +- .../pages/fa/about/security-reporting.mdx | 11 +- apps/site/pages/fr/about/branding.mdx | 12 +- apps/site/pages/fr/about/index.mdx | 16 +- .../pages/fr/about/security-reporting.mdx | 11 +- .../fr/download/package-manager/current.mdx | 1 - .../fr/download/package-manager/index.mdx | 1 - .../fr/download/prebuilt-binaries/current.mdx | 1 - .../fr/download/prebuilt-binaries/index.mdx | 1 - .../download/prebuilt-installer/current.mdx | 1 - .../fr/download/prebuilt-installer/index.mdx | 1 - .../pages/fr/download/source-code/current.mdx | 1 - .../pages/fr/download/source-code/index.mdx | 1 - apps/site/pages/fr/index.mdx | 169 ++++++++--------- apps/site/pages/id/about/branding.mdx | 12 +- apps/site/pages/id/about/index.mdx | 20 +- .../pages/id/about/security-reporting.mdx | 6 +- .../id/download/package-manager/current.mdx | 1 - .../id/download/package-manager/index.mdx | 1 - .../id/download/prebuilt-binaries/current.mdx | 1 - .../id/download/prebuilt-binaries/index.mdx | 1 - .../download/prebuilt-installer/current.mdx | 1 - .../id/download/prebuilt-installer/index.mdx | 1 - .../pages/id/download/source-code/current.mdx | 1 - .../pages/id/download/source-code/index.mdx | 1 - apps/site/pages/id/index.mdx | 173 +++++++++--------- apps/site/pages/ja/about/index.mdx | 16 +- apps/site/pages/ko/about/branding.mdx | 12 +- apps/site/pages/ko/about/index.mdx | 16 +- .../pages/ko/about/security-reporting.mdx | 11 +- .../ko/download/package-manager/current.mdx | 4 +- .../ko/download/package-manager/index.mdx | 4 +- .../ko/download/prebuilt-binaries/current.mdx | 3 +- .../ko/download/prebuilt-binaries/index.mdx | 3 +- .../download/prebuilt-installer/current.mdx | 3 +- .../ko/download/prebuilt-installer/index.mdx | 3 +- .../pages/ko/download/source-code/current.mdx | 4 +- .../pages/ko/download/source-code/index.mdx | 4 +- apps/site/pages/ko/index.mdx | 173 +++++++++--------- apps/site/pages/pt/about/index.mdx | 16 +- .../pages/pt/about/security-reporting.mdx | 11 +- apps/site/pages/tr/about/index.mdx | 16 +- .../pages/tr/about/security-reporting.mdx | 11 +- apps/site/pages/uk/about/branding.mdx | 12 +- apps/site/pages/uk/about/index.mdx | 16 +- .../pages/uk/about/security-reporting.mdx | 11 +- .../uk/download/package-manager/current.mdx | 1 - .../uk/download/package-manager/index.mdx | 1 - .../uk/download/prebuilt-binaries/current.mdx | 1 - .../uk/download/prebuilt-binaries/index.mdx | 1 - .../download/prebuilt-installer/current.mdx | 1 - .../uk/download/prebuilt-installer/index.mdx | 1 - .../pages/uk/download/source-code/current.mdx | 1 - .../pages/uk/download/source-code/index.mdx | 1 - apps/site/pages/uk/index.mdx | 171 +++++++++-------- apps/site/pages/zh-cn/about/index.mdx | 18 +- .../pages/zh-cn/about/security-reporting.mdx | 11 +- apps/site/pages/zh-tw/about/index.mdx | 16 +- .../pages/zh-tw/about/security-reporting.mdx | 11 +- packages/i18n/locales/ko.json | 2 +- 60 files changed, 442 insertions(+), 606 deletions(-) diff --git a/apps/site/pages/fa/about/index.mdx b/apps/site/pages/fa/about/index.mdx index 1bc8bbe99714b..2d344a52bed70 100644 --- a/apps/site/pages/fa/about/index.mdx +++ b/apps/site/pages/fa/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fa/about/security-reporting.mdx b/apps/site/pages/fa/about/security-reporting.mdx index ab8dafdc590ec..5060752c1d758 100644 --- a/apps/site/pages/fa/about/security-reporting.mdx +++ b/apps/site/pages/fa/about/security-reporting.mdx @@ -50,15 +50,8 @@ layout: about ## رویه‌های بهینه OpenSSF - - نشان OpenSSF + +نشان OpenSSF [نشان بهترین شیوه ها](https://github.com/coreinfrastructure/best-practices-badge) بنیاد امنیت متن باز (OpenSSF) راهی است برای پروژه‌های نرم‌افزار آزاد/رایگان و متن باز (FLOSS) تا نشان دهند که از رویه‌های بهینه پیروی می‌کنند. پروژه‌ها می‌توانند به صورت داوطلبانه خود تأیید کنند که چگونه از هر رویه بهینه پیروی می‌کنند. مصرف‌کنندگان این نشان می‌توانند به سرعت ارزیابی کنند که کدام پروژه‌های FLOSS از رویه‌های بهینه پیروی می‌کنند و در نتیجه احتمال بیشتری دارد که نرم‌افزارهای امن با کیفیت بالاتر تولید کنند. diff --git a/apps/site/pages/fr/about/branding.mdx b/apps/site/pages/fr/about/branding.mdx index bd7fe749280d8..7b1c241923000 100644 --- a/apps/site/pages/fr/about/branding.mdx +++ b/apps/site/pages/fr/about/branding.mdx @@ -11,13 +11,7 @@ Veuillez consulter la [politique en matière de marques](https://trademark-polic Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la conception et la contribution de la tortue-fusée. -Mascotte de Node.js +Mascotte de Node.js ## Logo Node.js® @@ -33,7 +27,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo horizontal clair de Node.js - @@ -50,7 +43,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé clair de Node.js - @@ -61,7 +53,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé blanc de Node.js - @@ -78,7 +69,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Icons JS Blanc - diff --git a/apps/site/pages/fr/about/index.mdx b/apps/site/pages/fr/about/index.mdx index c08e7bff80aa4..89ec644e63ba1 100644 --- a/apps/site/pages/fr/about/index.mdx +++ b/apps/site/pages/fr/about/index.mdx @@ -17,13 +17,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -34,13 +34,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fr/about/security-reporting.mdx b/apps/site/pages/fr/about/security-reporting.mdx index b17332a3543ac..d811ded7a3dde 100644 --- a/apps/site/pages/fr/about/security-reporting.mdx +++ b/apps/site/pages/fr/about/security-reporting.mdx @@ -74,15 +74,8 @@ Si vous avez des suggestions sur la façon dont ce processus pourrait être amé ## OpenSSF Best Practices - - Badge OpenSSF + +Badge OpenSSF Le [badge des meilleures pratiques] de l'Open Source Security Foundation (OpenSSF) (https://github.com/coreinfrastructure/best-practices-badge) est un moyen pour les projets de logiciels libres et open source (FLOSS) de montrer qu'ils suivent les meilleures pratiques. Les projets peuvent volontairement auto-certifier la manière dont ils suivent chaque meilleure pratique. Les utilisateurs du badge peuvent rapidement déterminer quels sont les projets FLOSS qui suivent les meilleures pratiques et qui sont donc plus susceptibles de produire des logiciels sécurisés de meilleure qualité. diff --git a/apps/site/pages/fr/download/package-manager/current.mdx b/apps/site/pages/fr/download/package-manager/current.mdx index a7b2f9969b4f7..b0076bba81413 100644 --- a/apps/site/pages/fr/download/package-manager/current.mdx +++ b/apps/site/pages/fr/download/package-manager/current.mdx @@ -20,5 +20,4 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Consultez d'autres gestionnaires de paquets soutenus par la communauté - diff --git a/apps/site/pages/fr/download/package-manager/index.mdx b/apps/site/pages/fr/download/package-manager/index.mdx index b9b4197b0960c..03287f36f11d7 100644 --- a/apps/site/pages/fr/download/package-manager/index.mdx +++ b/apps/site/pages/fr/download/package-manager/index.mdx @@ -20,5 +20,4 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Consultez d'autres gestionnaires de paquets soutenus par la communauté - diff --git a/apps/site/pages/fr/download/prebuilt-binaries/current.mdx b/apps/site/pages/fr/download/prebuilt-binaries/current.mdx index dcdad7cc77e90..216c348100248 100644 --- a/apps/site/pages/fr/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/fr/download/prebuilt-binaries/current.mdx @@ -20,5 +20,4 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Consultez les binaires préconstruits Nightly ou les Unofficial Builds pour d'autres plateformes. - diff --git a/apps/site/pages/fr/download/prebuilt-binaries/index.mdx b/apps/site/pages/fr/download/prebuilt-binaries/index.mdx index 4bed42857cf5d..6cd5fcaca7565 100644 --- a/apps/site/pages/fr/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/fr/download/prebuilt-binaries/index.mdx @@ -20,5 +20,4 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés. Consultez les binaires préconstruits Nightly, tous les binaires préconstruits Release ou Builds Non Officiels pour les autres plateformes. - diff --git a/apps/site/pages/fr/download/prebuilt-installer/current.mdx b/apps/site/pages/fr/download/prebuilt-installer/current.mdx index 1a51285899b70..d18e2db9e03f8 100644 --- a/apps/site/pages/fr/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/fr/download/prebuilt-installer/current.mdx @@ -22,5 +22,4 @@ Apprenez à vérifier les SHASUMSoptions de téléchargement de Node.js. En savoir plus sur les Versions Node.js - diff --git a/apps/site/pages/fr/download/prebuilt-installer/index.mdx b/apps/site/pages/fr/download/prebuilt-installer/index.mdx index b28ec06f8e16a..17233c160eaad 100644 --- a/apps/site/pages/fr/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/fr/download/prebuilt-installer/index.mdx @@ -22,5 +22,4 @@ Apprenez à vérifier les SHASUMSoptions de téléchargement de Node.js. En savoir plus sur les Versions Node.js - diff --git a/apps/site/pages/fr/download/source-code/current.mdx b/apps/site/pages/fr/download/source-code/current.mdx index d4fbc07f30be7..b4a6c1c8170eb 100644 --- a/apps/site/pages/fr/download/source-code/current.mdx +++ b/apps/site/pages/fr/download/source-code/current.mdx @@ -20,5 +20,4 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Découvrez comment compiler Node.js à partir des sources. - diff --git a/apps/site/pages/fr/download/source-code/index.mdx b/apps/site/pages/fr/download/source-code/index.mdx index d4fbc07f30be7..b4a6c1c8170eb 100644 --- a/apps/site/pages/fr/download/source-code/index.mdx +++ b/apps/site/pages/fr/download/source-code/index.mdx @@ -20,5 +20,4 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Découvrez comment compiler Node.js à partir des sources. - diff --git a/apps/site/pages/fr/index.mdx b/apps/site/pages/fr/index.mdx index 2cd1371107d46..e7ff5e8f88325 100644 --- a/apps/site/pages/fr/index.mdx +++ b/apps/site/pages/fr/index.mdx @@ -9,8 +9,7 @@ layout: home

Exécuter du JavaScript partout

-Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts. - + Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts.
@@ -45,93 +44,87 @@ Node.js® est un environnement d'exécution JavaScript gratuit, open-source et m // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Apprenez-en plus sur ce que Node.js est capable d'offrir avec notre [Matériel d'apprentissage](/learn). - diff --git a/apps/site/pages/id/about/branding.mdx b/apps/site/pages/id/about/branding.mdx index 503745304067a..58c108b838b20 100644 --- a/apps/site/pages/id/about/branding.mdx +++ b/apps/site/pages/id/about/branding.mdx @@ -11,13 +11,7 @@ Harap tinjau [kebijakan merek dagang](https://trademark-policy.openjsf.org/) unt Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) atas desain dan kontribusinya terhadap Rocket Turtle. -Node.js mascot +Node.js mascot ## Logo Node.js® @@ -33,7 +27,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Horizontal Node.js® - @@ -50,7 +43,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Bertumpuk Node.js® - @@ -61,7 +53,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Bertumpuk Putih Node.js - @@ -78,7 +69,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Ikon JS Putih - diff --git a/apps/site/pages/id/about/index.mdx b/apps/site/pages/id/about/index.mdx index bb2d0e29b91ee..3f15ddf32931a 100644 --- a/apps/site/pages/id/about/index.mdx +++ b/apps/site/pages/id/about/index.mdx @@ -17,13 +17,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -34,13 +34,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -56,13 +56,13 @@ Jika ada yang belum familiar dengan bahasa ini, ada artikel lengkap tentang [Blo --- -Node.js memiliki desain yang mirip dengan, dan dipengaruhi oleh, sistem seperti [Event Machine] \[] Ruby dan \[Twisted] \[] Python. Node.js membawa model acara sedikit lebih jauh. Ini menyajikan loop peristiwa sebagai konstruksi runtime, bukan sebagai perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai perulangan peristiwa. Biasanya, perilaku ditentukan melalui callback di awal skrip, dan di akhir skrip, server dimulai melalui panggilan pemblokiran seperti `EventMachine::run()`. Di Node.js, tidak ada panggilan start-the-event-loop. Node.js cukup memasuki loop acara setelah menjalankan skrip input. Node.js keluar dari loop peristiwa ketika tidak ada lagi callback yang harus dilakukan. Perilaku ini seperti JavaScript browser — loop peristiwa disembunyikan dari pengguna. +Node.js memiliki desain yang mirip dengan, dan dipengaruhi oleh, sistem seperti [Event Machine] [] Ruby dan [Twisted] [] Python. Node.js membawa model acara sedikit lebih jauh. Ini menyajikan loop peristiwa sebagai konstruksi runtime, bukan sebagai perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai perulangan peristiwa. Biasanya, perilaku ditentukan melalui callback di awal skrip, dan di akhir skrip, server dimulai melalui panggilan pemblokiran seperti `EventMachine::run()`. Di Node.js, tidak ada panggilan start-the-event-loop. Node.js cukup memasuki loop acara setelah menjalankan skrip input. Node.js keluar dari loop peristiwa ketika tidak ada lagi callback yang harus dilakukan. Perilaku ini seperti JavaScript browser — loop peristiwa disembunyikan dari pengguna. HTTP adalah warga negara kelas satu di Node.js, dirancang dengan streaming dan rendah latensi dalam pikiran. Ini membuat Node.js sangat cocok untuk fondasi web perpustakaan atau kerangka kerja. -Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. +Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child\_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/id/about/security-reporting.mdx b/apps/site/pages/id/about/security-reporting.mdx index d2808fcb4b6bd..eec7c6747e8cd 100644 --- a/apps/site/pages/id/about/security-reporting.mdx +++ b/apps/site/pages/id/about/security-reporting.mdx @@ -51,11 +51,7 @@ Jika Anda memiliki saran tentang bagaimana proses ini dapat ditingkatkan, silaka ## Praktik Terbaik OpenSSF - OpenSSF Badge +OpenSSF Badge [Best Practices badge](https://github.com/coreinfrastructure/best-practices-badge) Open Source Security Foundation (OpenSSF) adalah cara bagi proyek Free/Libre dan Open Source Software (FLOSS) untuk menunjukkan bahwa mereka mengikuti praktik terbaik. Proyek dapat secara sukarela melakukan sertifikasi sendiri bagaimana mereka mengikuti setiap praktik terbaik. Konsumen yang tersertifikasi dapat dengan cepat menilai proyek FLOSS mana yang mengikuti praktik terbaik dan sebagai hasilnya, mereka lebih cenderung menghasilkan perangkat lunak aman berkualitas lebih tinggi. diff --git a/apps/site/pages/id/download/package-manager/current.mdx b/apps/site/pages/id/download/package-manager/current.mdx index 34202cba92cd1..1f4c80e5b450a 100644 --- a/apps/site/pages/id/download/package-manager/current.mdx +++ b/apps/site/pages/id/download/package-manager/current.mdx @@ -20,5 +20,4 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat pengelola paket yang didukung komunitas lainnya - diff --git a/apps/site/pages/id/download/package-manager/index.mdx b/apps/site/pages/id/download/package-manager/index.mdx index 0e8e32f0ae34e..c2821b321849c 100644 --- a/apps/site/pages/id/download/package-manager/index.mdx +++ b/apps/site/pages/id/download/package-manager/index.mdx @@ -20,5 +20,4 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat pengelola paket yang didukung komunitas lainnya - diff --git a/apps/site/pages/id/download/prebuilt-binaries/current.mdx b/apps/site/pages/id/download/prebuilt-binaries/current.mdx index f9063133c81d7..ecdab946b0480 100644 --- a/apps/site/pages/id/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/id/download/prebuilt-binaries/current.mdx @@ -20,5 +20,4 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat biner pra-dibangun secara Nightly atau Bangunan Tidak Resmi untuk platform lain - diff --git a/apps/site/pages/id/download/prebuilt-binaries/index.mdx b/apps/site/pages/id/download/prebuilt-binaries/index.mdx index a3620eb74aa01..9ea085550ce16 100644 --- a/apps/site/pages/id/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/id/download/prebuilt-binaries/index.mdx @@ -20,5 +20,4 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani. Lihat biner pra-dibangun secara Nightly, semua biner pra-dibangun Rilis, atau Bangunan Tidak Resmi untuk platform lain. - diff --git a/apps/site/pages/id/download/prebuilt-installer/current.mdx b/apps/site/pages/id/download/prebuilt-installer/current.mdx index eac81f06f0310..323138c077ac3 100644 --- a/apps/site/pages/id/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/id/download/prebuilt-installer/current.mdx @@ -22,5 +22,4 @@ Pelajari cara memverifikasi SHASUMS yang ditandat Lihat semua opsi unduh Node.js yang tersedia Pelajari tentang Rilis Node.js - diff --git a/apps/site/pages/id/download/prebuilt-installer/index.mdx b/apps/site/pages/id/download/prebuilt-installer/index.mdx index 9eedb9693390e..8072e771136cc 100644 --- a/apps/site/pages/id/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/id/download/prebuilt-installer/index.mdx @@ -22,5 +22,4 @@ Pelajari cara memverifikasi SHASUMS yang ditandat Lihat semua opsi unduh Node.js yang tersedia Pelajari tentang Rilis Node.js - diff --git a/apps/site/pages/id/download/source-code/current.mdx b/apps/site/pages/id/download/source-code/current.mdx index 823a8bc7e5478..d209cd091b6c4 100644 --- a/apps/site/pages/id/download/source-code/current.mdx +++ b/apps/site/pages/id/download/source-code/current.mdx @@ -20,5 +20,4 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat bagaimana cara membangun Node.js dari sumber. - diff --git a/apps/site/pages/id/download/source-code/index.mdx b/apps/site/pages/id/download/source-code/index.mdx index 823a8bc7e5478..d209cd091b6c4 100644 --- a/apps/site/pages/id/download/source-code/index.mdx +++ b/apps/site/pages/id/download/source-code/index.mdx @@ -20,5 +20,4 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat bagaimana cara membangun Node.js dari sumber. - diff --git a/apps/site/pages/id/index.mdx b/apps/site/pages/id/index.mdx index cbe152c9a454f..81c705ffaffe9 100644 --- a/apps/site/pages/id/index.mdx +++ b/apps/site/pages/id/index.mdx @@ -9,10 +9,9 @@ layout: home

Jalankan JavaScript Di Mana Saja

-Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang -lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, -alat baris perintah, dan skrip. - + Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang + lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, + alat baris perintah, dan skrip.
@@ -47,93 +46,87 @@ alat baris perintah, dan skrip. // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Pelajari lebih lanjut tentang apa yang bisa ditawarkan Node.js melalui [Bahan Pembelajaran](/learn) kami. - diff --git a/apps/site/pages/ja/about/index.mdx b/apps/site/pages/ja/about/index.mdx index 00c987a077ad0..7f5bc663529eb 100644 --- a/apps/site/pages/ja/about/index.mdx +++ b/apps/site/pages/ja/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ko/about/branding.mdx b/apps/site/pages/ko/about/branding.mdx index 3b957d4cec5f4..12e8b5542e667 100644 --- a/apps/site/pages/ko/about/branding.mdx +++ b/apps/site/pages/ko/about/branding.mdx @@ -11,13 +11,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 로켓 거북이를 디자인하고 기여한 [Angela Angelini](https://www.linkedin.com/in/angeliningl/)에게 감사의 말씀을 전합니다. -Node.js 마스코트 +Node.js 마스코트 ## Node.js® 로고 @@ -33,7 +27,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 수평 로고 - @@ -50,7 +43,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 세로 로고 - @@ -61,7 +53,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 흰색 세로 로고 - @@ -78,7 +69,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 흰색 JS 아이콘 - diff --git a/apps/site/pages/ko/about/index.mdx b/apps/site/pages/ko/about/index.mdx index 6b1f89e3ecfb4..b72ea24718330 100644 --- a/apps/site/pages/ko/about/index.mdx +++ b/apps/site/pages/ko/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ko/about/security-reporting.mdx b/apps/site/pages/ko/about/security-reporting.mdx index 3f5e5252363e8..58ea3b0e620bb 100644 --- a/apps/site/pages/ko/about/security-reporting.mdx +++ b/apps/site/pages/ko/about/security-reporting.mdx @@ -50,15 +50,8 @@ Node.js의 보안 공개 정책은 다음과 같습니다. ## OpenSSF 모범 사례 - - OpenSSF 배지 + +OpenSSF 배지 Open Source Security Foundation(OpenSSF) [모범 사례 배지](https://github.com/coreinfrastructure/best-practices-badge)는 자유/오픈 소스 소프트웨어(FLOSS) 프로젝트가 모범 사례를 따르고 있음을 보여주는 방법입니다. 프로젝트는 자발적으로 각 사례를 어떻게 따르고 있는지에 대해 자체 인증할 수 있습니다. 이 배지를 확인하는 사용자들은 FLOSS 프로젝트가 모범 사례를 따르고 있는지 빠르게 평가할 수 있으며, 그 결과 더 높은 품질의 안전한 소프트웨어를 제작할 가능성이 높다는 것을 알 수 있습니다. diff --git a/apps/site/pages/ko/download/package-manager/current.mdx b/apps/site/pages/ko/download/package-manager/current.mdx index 0f279d8b4cecf..d015448897d85 100644 --- a/apps/site/pages/ko/download/package-manager/current.mdx +++ b/apps/site/pages/ko/download/package-manager/current.mdx @@ -17,9 +17,7 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 -확인하는 방법을 알아보세요. +서명된 SHASUMS를 확인하는 방법을 알아보세요. 커뮤니티에서 지원하는 다른 패키지 관리자도 확인하세요. - diff --git a/apps/site/pages/ko/download/package-manager/index.mdx b/apps/site/pages/ko/download/package-manager/index.mdx index 0f279d8b4cecf..d015448897d85 100644 --- a/apps/site/pages/ko/download/package-manager/index.mdx +++ b/apps/site/pages/ko/download/package-manager/index.mdx @@ -17,9 +17,7 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 -확인하는 방법을 알아보세요. +서명된 SHASUMS를 확인하는 방법을 알아보세요. 커뮤니티에서 지원하는 다른 패키지 관리자도 확인하세요. - diff --git a/apps/site/pages/ko/download/prebuilt-binaries/current.mdx b/apps/site/pages/ko/download/prebuilt-binaries/current.mdx index c537c8a3ad8a0..055211d1c6bfa 100644 --- a/apps/site/pages/ko/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/ko/download/prebuilt-binaries/current.mdx @@ -17,8 +17,7 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 -확인하는 방법을 배워보세요. +서명된 SHASUMS를 확인하는 방법을 배워보세요. Nightly 사전 빌드된 바이너리 또는 다른 플랫폼에 맞는 비공식 빌드를 확인하세요. diff --git a/apps/site/pages/ko/download/prebuilt-binaries/index.mdx b/apps/site/pages/ko/download/prebuilt-binaries/index.mdx index b938501de8686..5c076d398c7fd 100644 --- a/apps/site/pages/ko/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/ko/download/prebuilt-binaries/index.mdx @@ -17,8 +17,7 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 -확인하는 방법을 배워보세요. +서명된 SHASUMS를 확인하는 방법을 배워보세요. Nightly 사전 빌드된 바이너리, 모든 Release 사전 빌드된 바이너리, 또는 다른 플랫폼에 맞는 비공식 빌드를 확인하세요. diff --git a/apps/site/pages/ko/download/prebuilt-installer/current.mdx b/apps/site/pages/ko/download/prebuilt-installer/current.mdx index 269e4bb2ad06e..3adf3a9d0f992 100644 --- a/apps/site/pages/ko/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/ko/download/prebuilt-installer/current.mdx @@ -17,8 +17,7 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 -확인하는 방법을 배워보세요. +서명된 SHASUMS를 확인하는 방법을 배워보세요. 모든 사용 가능한 Node.js 다운로드 옵션을 확인하세요. diff --git a/apps/site/pages/ko/download/prebuilt-installer/index.mdx b/apps/site/pages/ko/download/prebuilt-installer/index.mdx index 40170f98fb381..09d91c78f0a1c 100644 --- a/apps/site/pages/ko/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/ko/download/prebuilt-installer/index.mdx @@ -17,8 +17,7 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 -확인하는 방법을 배워보세요. +서명된 SHASUMS를 확인하는 방법을 배워보세요. 모든 사용 가능한 Node.js 다운로드 옵션을 확인하세요. diff --git a/apps/site/pages/ko/download/source-code/current.mdx b/apps/site/pages/ko/download/source-code/current.mdx index 85b8cba1c0dce..6692b77a51758 100644 --- a/apps/site/pages/ko/download/source-code/current.mdx +++ b/apps/site/pages/ko/download/source-code/current.mdx @@ -17,9 +17,7 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS을 -확인하는 방법을 알아보세요. +서명된 SHASUMS을 확인하는 방법을 알아보세요. Node.js를 소스에서 빌드하는 방법을 확인하세요. - diff --git a/apps/site/pages/ko/download/source-code/index.mdx b/apps/site/pages/ko/download/source-code/index.mdx index 9917328435164..9f58937a5d9b0 100644 --- a/apps/site/pages/ko/download/source-code/index.mdx +++ b/apps/site/pages/ko/download/source-code/index.mdx @@ -17,9 +17,7 @@ Node.js에는 이 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -SHA 서명 확인라는 -방법을 배워보세요. +SHA 서명 확인라는 방법을 배워보세요. 코드에서 Node.js를 빌드하는 법을 확인해보세요. - diff --git a/apps/site/pages/ko/index.mdx b/apps/site/pages/ko/index.mdx index 2f0beb35634f9..575404dbbf5db 100644 --- a/apps/site/pages/ko/index.mdx +++ b/apps/site/pages/ko/index.mdx @@ -9,8 +9,7 @@ layout: home

어디서든 JavaScript를 실행하세요

-Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다. - + Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다.
@@ -27,7 +26,7 @@ Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경 )} - + {({ release }) => ( 새로운 기능을 먼저 경험하고 싶다면 @@ -45,93 +44,87 @@ Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경 // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
-Node.js에 대해 더 알고 싶다면 학습 자료를 확인하세요[Learning materials](/learn). - +Node.js가 제공하는 [학습 자료](/learn)를 통해 더 많은 정보를 알아보세요. diff --git a/apps/site/pages/pt/about/index.mdx b/apps/site/pages/pt/about/index.mdx index 5a9795a95a8a3..daaab4881380c 100644 --- a/apps/site/pages/pt/about/index.mdx +++ b/apps/site/pages/pt/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/pt/about/security-reporting.mdx b/apps/site/pages/pt/about/security-reporting.mdx index 184f4b990d644..70272eaf6154a 100644 --- a/apps/site/pages/pt/about/security-reporting.mdx +++ b/apps/site/pages/pt/about/security-reporting.mdx @@ -50,15 +50,8 @@ Se tivermos sugestões sobre como este processo poderia ser melhorado, podemos s ## Boas Práticas da OpenSSF - - Distintivo da OpenSSF + +Distintivo da OpenSSF distintivo de boas práticas da “Open Source Security Foundation (OpenSSF)” é uma maneira de os projetos de Software Livre e de Código Aberto (FLOSS) mostrarem que seguem as boas práticas. Os projetos podem certificar-se voluntariamente como seguem cada uma das boas práticas. Os consumidores do distintivo podem avaliar rapidamente quais os projetos FLOSS que seguem as boas práticas e, consequentemente, têm maior probabilidade de produzir software seguro de superior qualidade. diff --git a/apps/site/pages/tr/about/index.mdx b/apps/site/pages/tr/about/index.mdx index bc4e9683f1bf1..4973f55a84b66 100644 --- a/apps/site/pages/tr/about/index.mdx +++ b/apps/site/pages/tr/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/tr/about/security-reporting.mdx b/apps/site/pages/tr/about/security-reporting.mdx index 8c5cf0326847d..fc13948715082 100644 --- a/apps/site/pages/tr/about/security-reporting.mdx +++ b/apps/site/pages/tr/about/security-reporting.mdx @@ -52,15 +52,8 @@ Tartışmak için [bir konuyu dosyalayın](https://github.com/nodejs/security-wg ## OpenSSF En İyi Uygulamaları - - OpenSSF Rozeti + +OpenSSF Rozeti Açık Kaynak Güvenlik Vakfı (OpenSSF) [En İyi Uygulamalar rozeti](https://github.com/coreinfrastructure/best-practices-badge), Özgür/Kütüphane ve Açık Kaynak Yazılım (FLOSS) projelerinin en iyi uygulamaları takip ettiklerini göstermeleri için bir yoldur. Projeler gönüllü olarak her bir en iyi uygulamayı nasıl takip ettiklerini kendi kendilerine belgeleyebilirler. Rozetin tüketicileri, hangi FLOSS projelerinin en iyi uygulamaları takip ettiğini ve sonuç olarak daha yüksek kalitede güvenli yazılım üretme olasılığının daha yüksek olduğunu hızlı bir şekilde değerlendirebilirler. diff --git a/apps/site/pages/uk/about/branding.mdx b/apps/site/pages/uk/about/branding.mdx index 0d416c8a49ea4..03f2fc08f10bc 100644 --- a/apps/site/pages/uk/about/branding.mdx +++ b/apps/site/pages/uk/about/branding.mdx @@ -11,13 +11,7 @@ layout: about Дякуємо [Анджелі Анджеліні](https://www.linkedin.com/in/angeliningl) за дизайн та внесок у Rocket Turtle. -Маскот Node.js +Маскот Node.js ## Логотип Node.js® @@ -33,7 +27,6 @@ layout: about Світлий горизонтальний логотип Node.js - @@ -50,7 +43,6 @@ layout: about Світлий складений логотип Node.js® - @@ -61,7 +53,6 @@ layout: about Білий складений логотип Node.js® - @@ -78,7 +69,6 @@ layout: about Білий значок JS - diff --git a/apps/site/pages/uk/about/index.mdx b/apps/site/pages/uk/about/index.mdx index 8ace8ffa2c205..9fd7b29199885 100644 --- a/apps/site/pages/uk/about/index.mdx +++ b/apps/site/pages/uk/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/uk/about/security-reporting.mdx b/apps/site/pages/uk/about/security-reporting.mdx index c710284b2385d..94e72ebd933ff 100644 --- a/apps/site/pages/uk/about/security-reporting.mdx +++ b/apps/site/pages/uk/about/security-reporting.mdx @@ -51,15 +51,8 @@ layout: about ## Найкращі практики OpenSSF - - Значок OpenSSF + +Значок OpenSSF [Значок за найкращі практики](https://github.com/coreinfrastructure/best-practices-badge) від Open Source Security Foundation (OpenSSF) — це спосіб для проєктів із відкритим кодом (Free/Libre and Open Source Software, FLOSS) показати, що вони дотримуються найкращих практик. Проєкти можуть самостійно описати, як вони дотримуються кожної практики. Користувачі можуть швидко оцінити, які проєкти FLOSS дотримуються найкращих практик і, як результат, створювати безпечне ПЗ кращої якості. diff --git a/apps/site/pages/uk/download/package-manager/current.mdx b/apps/site/pages/uk/download/package-manager/current.mdx index 8b614025c7f37..1c1b5e1966acc 100644 --- a/apps/site/pages/uk/download/package-manager/current.mdx +++ b/apps/site/pages/uk/download/package-manager/current.mdx @@ -20,5 +20,4 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Перегляньте інші менеджери пакетів, які підтримуються спільнотою - diff --git a/apps/site/pages/uk/download/package-manager/index.mdx b/apps/site/pages/uk/download/package-manager/index.mdx index d772ef049cc28..773c2808e4a15 100644 --- a/apps/site/pages/uk/download/package-manager/index.mdx +++ b/apps/site/pages/uk/download/package-manager/index.mdx @@ -20,5 +20,4 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Перегляньте інші менеджери пакетів, які підтримуються спільнотою - diff --git a/apps/site/pages/uk/download/prebuilt-binaries/current.mdx b/apps/site/pages/uk/download/prebuilt-binaries/current.mdx index ee5f2d83f0638..b67bf809295e4 100644 --- a/apps/site/pages/uk/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/uk/download/prebuilt-binaries/current.mdx @@ -20,5 +20,4 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Перегляньте бінарні файли нічних збірок або неофіційні збірки для інших платформ - diff --git a/apps/site/pages/uk/download/prebuilt-binaries/index.mdx b/apps/site/pages/uk/download/prebuilt-binaries/index.mdx index 0d0a6e3a5d189..1ee50b5a39f7d 100644 --- a/apps/site/pages/uk/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/uk/download/prebuilt-binaries/index.mdx @@ -20,5 +20,4 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS. Перегляньте бінарні файли нічних збірок, усі бінарні файли релізу або неофіційні збірки для інших платформ. - diff --git a/apps/site/pages/uk/download/prebuilt-installer/current.mdx b/apps/site/pages/uk/download/prebuilt-installer/current.mdx index 05ba45d1fab18..83713b2a1b951 100644 --- a/apps/site/pages/uk/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/uk/download/prebuilt-installer/current.mdx @@ -22,5 +22,4 @@ Node.js містить . Перегляньте всі доступні опції завантаження Node.js Дізнайтеся більше про релізи Node.js - diff --git a/apps/site/pages/uk/download/prebuilt-installer/index.mdx b/apps/site/pages/uk/download/prebuilt-installer/index.mdx index 2fcb5bd6067bb..ecbfeb4d53b88 100644 --- a/apps/site/pages/uk/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/uk/download/prebuilt-installer/index.mdx @@ -22,5 +22,4 @@ Node.js містить . Перегляньте всі доступні опції завантаження Node.js Дізнайтеся більше про релізи Node.js - diff --git a/apps/site/pages/uk/download/source-code/current.mdx b/apps/site/pages/uk/download/source-code/current.mdx index 2d2846ddc04c7..de127381a2817 100644 --- a/apps/site/pages/uk/download/source-code/current.mdx +++ b/apps/site/pages/uk/download/source-code/current.mdx @@ -20,5 +20,4 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Дізнайтеся, як зібрати Node.js із вихідного коду. - diff --git a/apps/site/pages/uk/download/source-code/index.mdx b/apps/site/pages/uk/download/source-code/index.mdx index 2d2846ddc04c7..de127381a2817 100644 --- a/apps/site/pages/uk/download/source-code/index.mdx +++ b/apps/site/pages/uk/download/source-code/index.mdx @@ -20,5 +20,4 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Дізнайтеся, як зібрати Node.js із вихідного коду. - diff --git a/apps/site/pages/uk/index.mdx b/apps/site/pages/uk/index.mdx index 2b65d70048c87..75d1d7d556be5 100644 --- a/apps/site/pages/uk/index.mdx +++ b/apps/site/pages/uk/index.mdx @@ -9,9 +9,8 @@ layout: home

Запускайте JavaScript будь-де

-Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, -яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти. - + Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, + яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти.
@@ -46,93 +45,87 @@ Node.js® — це безплатне, кросплатформне середо // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Дізнайтеся більше про можливості Node.js із [нашими навчальними матеріалами](/learn). - diff --git a/apps/site/pages/zh-cn/about/index.mdx b/apps/site/pages/zh-cn/about/index.mdx index 47b787ffa40d5..cd3daeb14bba7 100644 --- a/apps/site/pages/zh-cn/about/index.mdx +++ b/apps/site/pages/zh-cn/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -51,7 +51,7 @@ Node.js 在设计上受到了诸如 Ruby 的 [Event Machine][] 和 Python 的 [T HTTP 在 Node.js 中是第一类公民,设计时考虑了流式传输和低延迟。这使得 Node.js 非常适合作为 Web 库或框架的基础。 -Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 +Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child\_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/zh-cn/about/security-reporting.mdx b/apps/site/pages/zh-cn/about/security-reporting.mdx index fafe4d90c5cef..e0ec739c92aab 100644 --- a/apps/site/pages/zh-cn/about/security-reporting.mdx +++ b/apps/site/pages/zh-cn/about/security-reporting.mdx @@ -50,15 +50,8 @@ Node.js 项目为安全研究人员和负责任的公开披露提供官方漏洞 ## OpenSSF 最佳实践 - - OpenSSF Badge + +OpenSSF Badge 开源安全基金会(OpenSSF)[最佳实践徽章](https://github.com/coreinfrastructure/best-practices-badge) 是自由/自由和开源软件(FLOSS)项目展示他们遵循最佳实践的一种方式。 项目可以自愿地自我认证他们如何遵循每个最佳实践。 徽章的使用者可以快速评估哪些 FLOSS 项目正在遵循最佳实践,因此更有可能产生更高质量的安全软件。 diff --git a/apps/site/pages/zh-tw/about/index.mdx b/apps/site/pages/zh-tw/about/index.mdx index 81b70befaa623..b297aa2df0fbb 100644 --- a/apps/site/pages/zh-tw/about/index.mdx +++ b/apps/site/pages/zh-tw/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/zh-tw/about/security-reporting.mdx b/apps/site/pages/zh-tw/about/security-reporting.mdx index 7f41b4ba9fcea..634022e514d6a 100644 --- a/apps/site/pages/zh-tw/about/security-reporting.mdx +++ b/apps/site/pages/zh-tw/about/security-reporting.mdx @@ -51,15 +51,8 @@ Node.js 專案為安全研究人員和盡責公開揭露設立了官方漏洞獎 ## OpenSSF 最佳實踐 - - OpenSSF 徽章 + +OpenSSF 徽章 開源安全基金會 (OpenSSF) [最佳實踐徽章](https://github.com/coreinfrastructure/best-practices-badge)的意義是為奉行最佳實踐的自由/開源軟體 (FLOSS) 專案提供背書。專案可以自發認證每項最佳實踐的遵循情況,徽章的使用者則可以快速評估哪些 FLOSS 專案確實遵循最佳實踐,因此更有可能產出安全又高品質的軟體。 diff --git a/packages/i18n/locales/ko.json b/packages/i18n/locales/ko.json index 6b24efa221df4..28661422f9285 100644 --- a/packages/i18n/locales/ko.json +++ b/packages/i18n/locales/ko.json @@ -153,7 +153,7 @@ } }, "downloadReleasesTable": { - "changelog": "변경 로그", + "changelog": "변경로그", "releases": "릴리스", "docs": "문서" }, From 6c2c602db81f58d6b73379d11136d4a2889c51d5 Mon Sep 17 00:00:00 2001 From: github-merge-queue Date: Fri, 13 Dec 2024 05:10:46 +0000 Subject: [PATCH 2/2] chore: automated format of translated files Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- apps/site/pages/fa/about/index.mdx | 16 +- .../pages/fa/about/security-reporting.mdx | 11 +- apps/site/pages/fr/about/branding.mdx | 12 +- apps/site/pages/fr/about/index.mdx | 16 +- .../pages/fr/about/security-reporting.mdx | 11 +- .../fr/download/package-manager/current.mdx | 1 + .../fr/download/package-manager/index.mdx | 1 + .../fr/download/prebuilt-binaries/current.mdx | 1 + .../fr/download/prebuilt-binaries/index.mdx | 1 + .../download/prebuilt-installer/current.mdx | 1 + .../fr/download/prebuilt-installer/index.mdx | 1 + .../pages/fr/download/source-code/current.mdx | 1 + .../pages/fr/download/source-code/index.mdx | 1 + apps/site/pages/fr/index.mdx | 169 +++++++++-------- apps/site/pages/id/about/branding.mdx | 12 +- apps/site/pages/id/about/index.mdx | 20 +- .../pages/id/about/security-reporting.mdx | 6 +- .../id/download/package-manager/current.mdx | 1 + .../id/download/package-manager/index.mdx | 1 + .../id/download/prebuilt-binaries/current.mdx | 1 + .../id/download/prebuilt-binaries/index.mdx | 1 + .../download/prebuilt-installer/current.mdx | 1 + .../id/download/prebuilt-installer/index.mdx | 1 + .../pages/id/download/source-code/current.mdx | 1 + .../pages/id/download/source-code/index.mdx | 1 + apps/site/pages/id/index.mdx | 173 +++++++++--------- apps/site/pages/ja/about/index.mdx | 16 +- apps/site/pages/ko/about/branding.mdx | 12 +- apps/site/pages/ko/about/index.mdx | 16 +- .../pages/ko/about/security-reporting.mdx | 11 +- .../ko/download/package-manager/current.mdx | 4 +- .../ko/download/package-manager/index.mdx | 4 +- .../ko/download/prebuilt-binaries/current.mdx | 3 +- .../ko/download/prebuilt-binaries/index.mdx | 3 +- .../download/prebuilt-installer/current.mdx | 3 +- .../ko/download/prebuilt-installer/index.mdx | 3 +- .../pages/ko/download/source-code/current.mdx | 4 +- .../pages/ko/download/source-code/index.mdx | 4 +- apps/site/pages/ko/index.mdx | 169 +++++++++-------- apps/site/pages/pt/about/index.mdx | 16 +- .../pages/pt/about/security-reporting.mdx | 11 +- apps/site/pages/tr/about/index.mdx | 16 +- .../pages/tr/about/security-reporting.mdx | 11 +- apps/site/pages/uk/about/branding.mdx | 12 +- apps/site/pages/uk/about/index.mdx | 16 +- .../pages/uk/about/security-reporting.mdx | 11 +- .../uk/download/package-manager/current.mdx | 1 + .../uk/download/package-manager/index.mdx | 1 + .../uk/download/prebuilt-binaries/current.mdx | 1 + .../uk/download/prebuilt-binaries/index.mdx | 1 + .../download/prebuilt-installer/current.mdx | 1 + .../uk/download/prebuilt-installer/index.mdx | 1 + .../pages/uk/download/source-code/current.mdx | 1 + .../pages/uk/download/source-code/index.mdx | 1 + apps/site/pages/uk/index.mdx | 171 ++++++++--------- apps/site/pages/zh-cn/about/index.mdx | 18 +- .../pages/zh-cn/about/security-reporting.mdx | 11 +- apps/site/pages/zh-tw/about/index.mdx | 16 +- .../pages/zh-tw/about/security-reporting.mdx | 11 +- 59 files changed, 603 insertions(+), 439 deletions(-) diff --git a/apps/site/pages/fa/about/index.mdx b/apps/site/pages/fa/about/index.mdx index 2d344a52bed70..1bc8bbe99714b 100644 --- a/apps/site/pages/fa/about/index.mdx +++ b/apps/site/pages/fa/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fa/about/security-reporting.mdx b/apps/site/pages/fa/about/security-reporting.mdx index 5060752c1d758..ab8dafdc590ec 100644 --- a/apps/site/pages/fa/about/security-reporting.mdx +++ b/apps/site/pages/fa/about/security-reporting.mdx @@ -50,8 +50,15 @@ layout: about ## رویه‌های بهینه OpenSSF - -نشان OpenSSF + + نشان OpenSSF [نشان بهترین شیوه ها](https://github.com/coreinfrastructure/best-practices-badge) بنیاد امنیت متن باز (OpenSSF) راهی است برای پروژه‌های نرم‌افزار آزاد/رایگان و متن باز (FLOSS) تا نشان دهند که از رویه‌های بهینه پیروی می‌کنند. پروژه‌ها می‌توانند به صورت داوطلبانه خود تأیید کنند که چگونه از هر رویه بهینه پیروی می‌کنند. مصرف‌کنندگان این نشان می‌توانند به سرعت ارزیابی کنند که کدام پروژه‌های FLOSS از رویه‌های بهینه پیروی می‌کنند و در نتیجه احتمال بیشتری دارد که نرم‌افزارهای امن با کیفیت بالاتر تولید کنند. diff --git a/apps/site/pages/fr/about/branding.mdx b/apps/site/pages/fr/about/branding.mdx index 7b1c241923000..bd7fe749280d8 100644 --- a/apps/site/pages/fr/about/branding.mdx +++ b/apps/site/pages/fr/about/branding.mdx @@ -11,7 +11,13 @@ Veuillez consulter la [politique en matière de marques](https://trademark-polic Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la conception et la contribution de la tortue-fusée. -Mascotte de Node.js +Mascotte de Node.js ## Logo Node.js® @@ -27,6 +33,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo horizontal clair de Node.js + @@ -43,6 +50,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé clair de Node.js + @@ -53,6 +61,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé blanc de Node.js + @@ -69,6 +78,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Icons JS Blanc + diff --git a/apps/site/pages/fr/about/index.mdx b/apps/site/pages/fr/about/index.mdx index 89ec644e63ba1..c08e7bff80aa4 100644 --- a/apps/site/pages/fr/about/index.mdx +++ b/apps/site/pages/fr/about/index.mdx @@ -17,13 +17,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -34,13 +34,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fr/about/security-reporting.mdx b/apps/site/pages/fr/about/security-reporting.mdx index d811ded7a3dde..b17332a3543ac 100644 --- a/apps/site/pages/fr/about/security-reporting.mdx +++ b/apps/site/pages/fr/about/security-reporting.mdx @@ -74,8 +74,15 @@ Si vous avez des suggestions sur la façon dont ce processus pourrait être amé ## OpenSSF Best Practices - -Badge OpenSSF + + Badge OpenSSF Le [badge des meilleures pratiques] de l'Open Source Security Foundation (OpenSSF) (https://github.com/coreinfrastructure/best-practices-badge) est un moyen pour les projets de logiciels libres et open source (FLOSS) de montrer qu'ils suivent les meilleures pratiques. Les projets peuvent volontairement auto-certifier la manière dont ils suivent chaque meilleure pratique. Les utilisateurs du badge peuvent rapidement déterminer quels sont les projets FLOSS qui suivent les meilleures pratiques et qui sont donc plus susceptibles de produire des logiciels sécurisés de meilleure qualité. diff --git a/apps/site/pages/fr/download/package-manager/current.mdx b/apps/site/pages/fr/download/package-manager/current.mdx index b0076bba81413..a7b2f9969b4f7 100644 --- a/apps/site/pages/fr/download/package-manager/current.mdx +++ b/apps/site/pages/fr/download/package-manager/current.mdx @@ -20,4 +20,5 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Consultez d'autres gestionnaires de paquets soutenus par la communauté + diff --git a/apps/site/pages/fr/download/package-manager/index.mdx b/apps/site/pages/fr/download/package-manager/index.mdx index 03287f36f11d7..b9b4197b0960c 100644 --- a/apps/site/pages/fr/download/package-manager/index.mdx +++ b/apps/site/pages/fr/download/package-manager/index.mdx @@ -20,4 +20,5 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Consultez d'autres gestionnaires de paquets soutenus par la communauté + diff --git a/apps/site/pages/fr/download/prebuilt-binaries/current.mdx b/apps/site/pages/fr/download/prebuilt-binaries/current.mdx index 216c348100248..dcdad7cc77e90 100644 --- a/apps/site/pages/fr/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/fr/download/prebuilt-binaries/current.mdx @@ -20,4 +20,5 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Consultez les binaires préconstruits Nightly ou les Unofficial Builds pour d'autres plateformes. + diff --git a/apps/site/pages/fr/download/prebuilt-binaries/index.mdx b/apps/site/pages/fr/download/prebuilt-binaries/index.mdx index 6cd5fcaca7565..4bed42857cf5d 100644 --- a/apps/site/pages/fr/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/fr/download/prebuilt-binaries/index.mdx @@ -20,4 +20,5 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés. Consultez les binaires préconstruits Nightly, tous les binaires préconstruits Release ou Builds Non Officiels pour les autres plateformes. + diff --git a/apps/site/pages/fr/download/prebuilt-installer/current.mdx b/apps/site/pages/fr/download/prebuilt-installer/current.mdx index d18e2db9e03f8..1a51285899b70 100644 --- a/apps/site/pages/fr/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/fr/download/prebuilt-installer/current.mdx @@ -22,4 +22,5 @@ Apprenez à vérifier les SHASUMSoptions de téléchargement de Node.js. En savoir plus sur les Versions Node.js + diff --git a/apps/site/pages/fr/download/prebuilt-installer/index.mdx b/apps/site/pages/fr/download/prebuilt-installer/index.mdx index 17233c160eaad..b28ec06f8e16a 100644 --- a/apps/site/pages/fr/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/fr/download/prebuilt-installer/index.mdx @@ -22,4 +22,5 @@ Apprenez à vérifier les SHASUMSoptions de téléchargement de Node.js. En savoir plus sur les Versions Node.js + diff --git a/apps/site/pages/fr/download/source-code/current.mdx b/apps/site/pages/fr/download/source-code/current.mdx index b4a6c1c8170eb..d4fbc07f30be7 100644 --- a/apps/site/pages/fr/download/source-code/current.mdx +++ b/apps/site/pages/fr/download/source-code/current.mdx @@ -20,4 +20,5 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Découvrez comment compiler Node.js à partir des sources. + diff --git a/apps/site/pages/fr/download/source-code/index.mdx b/apps/site/pages/fr/download/source-code/index.mdx index b4a6c1c8170eb..d4fbc07f30be7 100644 --- a/apps/site/pages/fr/download/source-code/index.mdx +++ b/apps/site/pages/fr/download/source-code/index.mdx @@ -20,4 +20,5 @@ Lire le journal des modifications p Apprenez à vérifier les SHASUMS signés Découvrez comment compiler Node.js à partir des sources. + diff --git a/apps/site/pages/fr/index.mdx b/apps/site/pages/fr/index.mdx index e7ff5e8f88325..2cd1371107d46 100644 --- a/apps/site/pages/fr/index.mdx +++ b/apps/site/pages/fr/index.mdx @@ -9,7 +9,8 @@ layout: home

Exécuter du JavaScript partout

- Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts. +Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts. +
@@ -44,87 +45,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Apprenez-en plus sur ce que Node.js est capable d'offrir avec notre [Matériel d'apprentissage](/learn). + diff --git a/apps/site/pages/id/about/branding.mdx b/apps/site/pages/id/about/branding.mdx index 58c108b838b20..503745304067a 100644 --- a/apps/site/pages/id/about/branding.mdx +++ b/apps/site/pages/id/about/branding.mdx @@ -11,7 +11,13 @@ Harap tinjau [kebijakan merek dagang](https://trademark-policy.openjsf.org/) unt Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) atas desain dan kontribusinya terhadap Rocket Turtle. -Node.js mascot +Node.js mascot ## Logo Node.js® @@ -27,6 +33,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Horizontal Node.js® + @@ -43,6 +50,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Bertumpuk Node.js® + @@ -53,6 +61,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Bertumpuk Putih Node.js + @@ -69,6 +78,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Ikon JS Putih + diff --git a/apps/site/pages/id/about/index.mdx b/apps/site/pages/id/about/index.mdx index 3f15ddf32931a..bb2d0e29b91ee 100644 --- a/apps/site/pages/id/about/index.mdx +++ b/apps/site/pages/id/about/index.mdx @@ -17,13 +17,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -34,13 +34,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -56,13 +56,13 @@ Jika ada yang belum familiar dengan bahasa ini, ada artikel lengkap tentang [Blo --- -Node.js memiliki desain yang mirip dengan, dan dipengaruhi oleh, sistem seperti [Event Machine] [] Ruby dan [Twisted] [] Python. Node.js membawa model acara sedikit lebih jauh. Ini menyajikan loop peristiwa sebagai konstruksi runtime, bukan sebagai perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai perulangan peristiwa. Biasanya, perilaku ditentukan melalui callback di awal skrip, dan di akhir skrip, server dimulai melalui panggilan pemblokiran seperti `EventMachine::run()`. Di Node.js, tidak ada panggilan start-the-event-loop. Node.js cukup memasuki loop acara setelah menjalankan skrip input. Node.js keluar dari loop peristiwa ketika tidak ada lagi callback yang harus dilakukan. Perilaku ini seperti JavaScript browser — loop peristiwa disembunyikan dari pengguna. +Node.js memiliki desain yang mirip dengan, dan dipengaruhi oleh, sistem seperti [Event Machine] \[] Ruby dan \[Twisted] \[] Python. Node.js membawa model acara sedikit lebih jauh. Ini menyajikan loop peristiwa sebagai konstruksi runtime, bukan sebagai perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai perulangan peristiwa. Biasanya, perilaku ditentukan melalui callback di awal skrip, dan di akhir skrip, server dimulai melalui panggilan pemblokiran seperti `EventMachine::run()`. Di Node.js, tidak ada panggilan start-the-event-loop. Node.js cukup memasuki loop acara setelah menjalankan skrip input. Node.js keluar dari loop peristiwa ketika tidak ada lagi callback yang harus dilakukan. Perilaku ini seperti JavaScript browser — loop peristiwa disembunyikan dari pengguna. HTTP adalah warga negara kelas satu di Node.js, dirancang dengan streaming dan rendah latensi dalam pikiran. Ini membuat Node.js sangat cocok untuk fondasi web perpustakaan atau kerangka kerja. -Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child\_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. +Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/id/about/security-reporting.mdx b/apps/site/pages/id/about/security-reporting.mdx index eec7c6747e8cd..d2808fcb4b6bd 100644 --- a/apps/site/pages/id/about/security-reporting.mdx +++ b/apps/site/pages/id/about/security-reporting.mdx @@ -51,7 +51,11 @@ Jika Anda memiliki saran tentang bagaimana proses ini dapat ditingkatkan, silaka ## Praktik Terbaik OpenSSF -OpenSSF Badge + OpenSSF Badge [Best Practices badge](https://github.com/coreinfrastructure/best-practices-badge) Open Source Security Foundation (OpenSSF) adalah cara bagi proyek Free/Libre dan Open Source Software (FLOSS) untuk menunjukkan bahwa mereka mengikuti praktik terbaik. Proyek dapat secara sukarela melakukan sertifikasi sendiri bagaimana mereka mengikuti setiap praktik terbaik. Konsumen yang tersertifikasi dapat dengan cepat menilai proyek FLOSS mana yang mengikuti praktik terbaik dan sebagai hasilnya, mereka lebih cenderung menghasilkan perangkat lunak aman berkualitas lebih tinggi. diff --git a/apps/site/pages/id/download/package-manager/current.mdx b/apps/site/pages/id/download/package-manager/current.mdx index 1f4c80e5b450a..34202cba92cd1 100644 --- a/apps/site/pages/id/download/package-manager/current.mdx +++ b/apps/site/pages/id/download/package-manager/current.mdx @@ -20,4 +20,5 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat pengelola paket yang didukung komunitas lainnya + diff --git a/apps/site/pages/id/download/package-manager/index.mdx b/apps/site/pages/id/download/package-manager/index.mdx index c2821b321849c..0e8e32f0ae34e 100644 --- a/apps/site/pages/id/download/package-manager/index.mdx +++ b/apps/site/pages/id/download/package-manager/index.mdx @@ -20,4 +20,5 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat pengelola paket yang didukung komunitas lainnya + diff --git a/apps/site/pages/id/download/prebuilt-binaries/current.mdx b/apps/site/pages/id/download/prebuilt-binaries/current.mdx index ecdab946b0480..f9063133c81d7 100644 --- a/apps/site/pages/id/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/id/download/prebuilt-binaries/current.mdx @@ -20,4 +20,5 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat biner pra-dibangun secara Nightly atau Bangunan Tidak Resmi untuk platform lain + diff --git a/apps/site/pages/id/download/prebuilt-binaries/index.mdx b/apps/site/pages/id/download/prebuilt-binaries/index.mdx index 9ea085550ce16..a3620eb74aa01 100644 --- a/apps/site/pages/id/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/id/download/prebuilt-binaries/index.mdx @@ -20,4 +20,5 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani. Lihat biner pra-dibangun secara Nightly, semua biner pra-dibangun Rilis, atau Bangunan Tidak Resmi untuk platform lain. + diff --git a/apps/site/pages/id/download/prebuilt-installer/current.mdx b/apps/site/pages/id/download/prebuilt-installer/current.mdx index 323138c077ac3..eac81f06f0310 100644 --- a/apps/site/pages/id/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/id/download/prebuilt-installer/current.mdx @@ -22,4 +22,5 @@ Pelajari cara memverifikasi SHASUMS yang ditandat Lihat semua opsi unduh Node.js yang tersedia Pelajari tentang Rilis Node.js + diff --git a/apps/site/pages/id/download/prebuilt-installer/index.mdx b/apps/site/pages/id/download/prebuilt-installer/index.mdx index 8072e771136cc..9eedb9693390e 100644 --- a/apps/site/pages/id/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/id/download/prebuilt-installer/index.mdx @@ -22,4 +22,5 @@ Pelajari cara memverifikasi SHASUMS yang ditandat Lihat semua opsi unduh Node.js yang tersedia Pelajari tentang Rilis Node.js + diff --git a/apps/site/pages/id/download/source-code/current.mdx b/apps/site/pages/id/download/source-code/current.mdx index d209cd091b6c4..823a8bc7e5478 100644 --- a/apps/site/pages/id/download/source-code/current.mdx +++ b/apps/site/pages/id/download/source-code/current.mdx @@ -20,4 +20,5 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat bagaimana cara membangun Node.js dari sumber. + diff --git a/apps/site/pages/id/download/source-code/index.mdx b/apps/site/pages/id/download/source-code/index.mdx index d209cd091b6c4..823a8bc7e5478 100644 --- a/apps/site/pages/id/download/source-code/index.mdx +++ b/apps/site/pages/id/download/source-code/index.mdx @@ -20,4 +20,5 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi SHASUMS yang ditandatangani Lihat bagaimana cara membangun Node.js dari sumber. + diff --git a/apps/site/pages/id/index.mdx b/apps/site/pages/id/index.mdx index 81c705ffaffe9..cbe152c9a454f 100644 --- a/apps/site/pages/id/index.mdx +++ b/apps/site/pages/id/index.mdx @@ -9,9 +9,10 @@ layout: home

Jalankan JavaScript Di Mana Saja

- Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang - lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, - alat baris perintah, dan skrip. +Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang +lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, +alat baris perintah, dan skrip. +
@@ -46,87 +47,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Pelajari lebih lanjut tentang apa yang bisa ditawarkan Node.js melalui [Bahan Pembelajaran](/learn) kami. + diff --git a/apps/site/pages/ja/about/index.mdx b/apps/site/pages/ja/about/index.mdx index 7f5bc663529eb..00c987a077ad0 100644 --- a/apps/site/pages/ja/about/index.mdx +++ b/apps/site/pages/ja/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ko/about/branding.mdx b/apps/site/pages/ko/about/branding.mdx index 12e8b5542e667..3b957d4cec5f4 100644 --- a/apps/site/pages/ko/about/branding.mdx +++ b/apps/site/pages/ko/about/branding.mdx @@ -11,7 +11,13 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 로켓 거북이를 디자인하고 기여한 [Angela Angelini](https://www.linkedin.com/in/angeliningl/)에게 감사의 말씀을 전합니다. -Node.js 마스코트 +Node.js 마스코트 ## Node.js® 로고 @@ -27,6 +33,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 수평 로고 + @@ -43,6 +50,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 세로 로고 + @@ -53,6 +61,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 흰색 세로 로고 + @@ -69,6 +78,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 흰색 JS 아이콘 + diff --git a/apps/site/pages/ko/about/index.mdx b/apps/site/pages/ko/about/index.mdx index b72ea24718330..6b1f89e3ecfb4 100644 --- a/apps/site/pages/ko/about/index.mdx +++ b/apps/site/pages/ko/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ko/about/security-reporting.mdx b/apps/site/pages/ko/about/security-reporting.mdx index 58ea3b0e620bb..3f5e5252363e8 100644 --- a/apps/site/pages/ko/about/security-reporting.mdx +++ b/apps/site/pages/ko/about/security-reporting.mdx @@ -50,8 +50,15 @@ Node.js의 보안 공개 정책은 다음과 같습니다. ## OpenSSF 모범 사례 - -OpenSSF 배지 + + OpenSSF 배지 Open Source Security Foundation(OpenSSF) [모범 사례 배지](https://github.com/coreinfrastructure/best-practices-badge)는 자유/오픈 소스 소프트웨어(FLOSS) 프로젝트가 모범 사례를 따르고 있음을 보여주는 방법입니다. 프로젝트는 자발적으로 각 사례를 어떻게 따르고 있는지에 대해 자체 인증할 수 있습니다. 이 배지를 확인하는 사용자들은 FLOSS 프로젝트가 모범 사례를 따르고 있는지 빠르게 평가할 수 있으며, 그 결과 더 높은 품질의 안전한 소프트웨어를 제작할 가능성이 높다는 것을 알 수 있습니다. diff --git a/apps/site/pages/ko/download/package-manager/current.mdx b/apps/site/pages/ko/download/package-manager/current.mdx index d015448897d85..0f279d8b4cecf 100644 --- a/apps/site/pages/ko/download/package-manager/current.mdx +++ b/apps/site/pages/ko/download/package-manager/current.mdx @@ -17,7 +17,9 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 확인하는 방법을 알아보세요. +서명된 SHASUMS를 +확인하는 방법을 알아보세요. 커뮤니티에서 지원하는 다른 패키지 관리자도 확인하세요. + diff --git a/apps/site/pages/ko/download/package-manager/index.mdx b/apps/site/pages/ko/download/package-manager/index.mdx index d015448897d85..0f279d8b4cecf 100644 --- a/apps/site/pages/ko/download/package-manager/index.mdx +++ b/apps/site/pages/ko/download/package-manager/index.mdx @@ -17,7 +17,9 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 확인하는 방법을 알아보세요. +서명된 SHASUMS를 +확인하는 방법을 알아보세요. 커뮤니티에서 지원하는 다른 패키지 관리자도 확인하세요. + diff --git a/apps/site/pages/ko/download/prebuilt-binaries/current.mdx b/apps/site/pages/ko/download/prebuilt-binaries/current.mdx index 055211d1c6bfa..c537c8a3ad8a0 100644 --- a/apps/site/pages/ko/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/ko/download/prebuilt-binaries/current.mdx @@ -17,7 +17,8 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 확인하는 방법을 배워보세요. +서명된 SHASUMS를 +확인하는 방법을 배워보세요. Nightly 사전 빌드된 바이너리 또는 다른 플랫폼에 맞는 비공식 빌드를 확인하세요. diff --git a/apps/site/pages/ko/download/prebuilt-binaries/index.mdx b/apps/site/pages/ko/download/prebuilt-binaries/index.mdx index 5c076d398c7fd..b938501de8686 100644 --- a/apps/site/pages/ko/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/ko/download/prebuilt-binaries/index.mdx @@ -17,7 +17,8 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 확인하는 방법을 배워보세요. +서명된 SHASUMS를 +확인하는 방법을 배워보세요. Nightly 사전 빌드된 바이너리, 모든 Release 사전 빌드된 바이너리, 또는 다른 플랫폼에 맞는 비공식 빌드를 확인하세요. diff --git a/apps/site/pages/ko/download/prebuilt-installer/current.mdx b/apps/site/pages/ko/download/prebuilt-installer/current.mdx index 3adf3a9d0f992..269e4bb2ad06e 100644 --- a/apps/site/pages/ko/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/ko/download/prebuilt-installer/current.mdx @@ -17,7 +17,8 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 확인하는 방법을 배워보세요. +서명된 SHASUMS를 +확인하는 방법을 배워보세요. 모든 사용 가능한 Node.js 다운로드 옵션을 확인하세요. diff --git a/apps/site/pages/ko/download/prebuilt-installer/index.mdx b/apps/site/pages/ko/download/prebuilt-installer/index.mdx index 09d91c78f0a1c..40170f98fb381 100644 --- a/apps/site/pages/ko/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/ko/download/prebuilt-installer/index.mdx @@ -17,7 +17,8 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS를 확인하는 방법을 배워보세요. +서명된 SHASUMS를 +확인하는 방법을 배워보세요. 모든 사용 가능한 Node.js 다운로드 옵션을 확인하세요. diff --git a/apps/site/pages/ko/download/source-code/current.mdx b/apps/site/pages/ko/download/source-code/current.mdx index 6692b77a51758..85b8cba1c0dce 100644 --- a/apps/site/pages/ko/download/source-code/current.mdx +++ b/apps/site/pages/ko/download/source-code/current.mdx @@ -17,7 +17,9 @@ Node.js에는 가 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -서명된 SHASUMS을 확인하는 방법을 알아보세요. +서명된 SHASUMS을 +확인하는 방법을 알아보세요. Node.js를 소스에서 빌드하는 방법을 확인하세요. + diff --git a/apps/site/pages/ko/download/source-code/index.mdx b/apps/site/pages/ko/download/source-code/index.mdx index 9f58937a5d9b0..9917328435164 100644 --- a/apps/site/pages/ko/download/source-code/index.mdx +++ b/apps/site/pages/ko/download/source-code/index.mdx @@ -17,7 +17,9 @@ Node.js에는 이 포함되어 있습니다. 이 버전의 블로그 게시물을 확인하세요. -SHA 서명 확인라는 방법을 배워보세요. +SHA 서명 확인라는 +방법을 배워보세요. 코드에서 Node.js를 빌드하는 법을 확인해보세요. + diff --git a/apps/site/pages/ko/index.mdx b/apps/site/pages/ko/index.mdx index 575404dbbf5db..25f31ed624ab0 100644 --- a/apps/site/pages/ko/index.mdx +++ b/apps/site/pages/ko/index.mdx @@ -9,7 +9,8 @@ layout: home

어디서든 JavaScript를 실행하세요

- Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다. +Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다. +
@@ -44,87 +45,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Node.js가 제공하는 [학습 자료](/learn)를 통해 더 많은 정보를 알아보세요. + diff --git a/apps/site/pages/pt/about/index.mdx b/apps/site/pages/pt/about/index.mdx index daaab4881380c..5a9795a95a8a3 100644 --- a/apps/site/pages/pt/about/index.mdx +++ b/apps/site/pages/pt/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/pt/about/security-reporting.mdx b/apps/site/pages/pt/about/security-reporting.mdx index 70272eaf6154a..184f4b990d644 100644 --- a/apps/site/pages/pt/about/security-reporting.mdx +++ b/apps/site/pages/pt/about/security-reporting.mdx @@ -50,8 +50,15 @@ Se tivermos sugestões sobre como este processo poderia ser melhorado, podemos s ## Boas Práticas da OpenSSF - -Distintivo da OpenSSF + + Distintivo da OpenSSF distintivo de boas práticas da “Open Source Security Foundation (OpenSSF)” é uma maneira de os projetos de Software Livre e de Código Aberto (FLOSS) mostrarem que seguem as boas práticas. Os projetos podem certificar-se voluntariamente como seguem cada uma das boas práticas. Os consumidores do distintivo podem avaliar rapidamente quais os projetos FLOSS que seguem as boas práticas e, consequentemente, têm maior probabilidade de produzir software seguro de superior qualidade. diff --git a/apps/site/pages/tr/about/index.mdx b/apps/site/pages/tr/about/index.mdx index 4973f55a84b66..bc4e9683f1bf1 100644 --- a/apps/site/pages/tr/about/index.mdx +++ b/apps/site/pages/tr/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/tr/about/security-reporting.mdx b/apps/site/pages/tr/about/security-reporting.mdx index fc13948715082..8c5cf0326847d 100644 --- a/apps/site/pages/tr/about/security-reporting.mdx +++ b/apps/site/pages/tr/about/security-reporting.mdx @@ -52,8 +52,15 @@ Tartışmak için [bir konuyu dosyalayın](https://github.com/nodejs/security-wg ## OpenSSF En İyi Uygulamaları - -OpenSSF Rozeti + + OpenSSF Rozeti Açık Kaynak Güvenlik Vakfı (OpenSSF) [En İyi Uygulamalar rozeti](https://github.com/coreinfrastructure/best-practices-badge), Özgür/Kütüphane ve Açık Kaynak Yazılım (FLOSS) projelerinin en iyi uygulamaları takip ettiklerini göstermeleri için bir yoldur. Projeler gönüllü olarak her bir en iyi uygulamayı nasıl takip ettiklerini kendi kendilerine belgeleyebilirler. Rozetin tüketicileri, hangi FLOSS projelerinin en iyi uygulamaları takip ettiğini ve sonuç olarak daha yüksek kalitede güvenli yazılım üretme olasılığının daha yüksek olduğunu hızlı bir şekilde değerlendirebilirler. diff --git a/apps/site/pages/uk/about/branding.mdx b/apps/site/pages/uk/about/branding.mdx index 03f2fc08f10bc..0d416c8a49ea4 100644 --- a/apps/site/pages/uk/about/branding.mdx +++ b/apps/site/pages/uk/about/branding.mdx @@ -11,7 +11,13 @@ layout: about Дякуємо [Анджелі Анджеліні](https://www.linkedin.com/in/angeliningl) за дизайн та внесок у Rocket Turtle. -Маскот Node.js +Маскот Node.js ## Логотип Node.js® @@ -27,6 +33,7 @@ layout: about Світлий горизонтальний логотип Node.js + @@ -43,6 +50,7 @@ layout: about Світлий складений логотип Node.js® + @@ -53,6 +61,7 @@ layout: about Білий складений логотип Node.js® + @@ -69,6 +78,7 @@ layout: about Білий значок JS + diff --git a/apps/site/pages/uk/about/index.mdx b/apps/site/pages/uk/about/index.mdx index 9fd7b29199885..8ace8ffa2c205 100644 --- a/apps/site/pages/uk/about/index.mdx +++ b/apps/site/pages/uk/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/uk/about/security-reporting.mdx b/apps/site/pages/uk/about/security-reporting.mdx index 94e72ebd933ff..c710284b2385d 100644 --- a/apps/site/pages/uk/about/security-reporting.mdx +++ b/apps/site/pages/uk/about/security-reporting.mdx @@ -51,8 +51,15 @@ layout: about ## Найкращі практики OpenSSF - -Значок OpenSSF + + Значок OpenSSF [Значок за найкращі практики](https://github.com/coreinfrastructure/best-practices-badge) від Open Source Security Foundation (OpenSSF) — це спосіб для проєктів із відкритим кодом (Free/Libre and Open Source Software, FLOSS) показати, що вони дотримуються найкращих практик. Проєкти можуть самостійно описати, як вони дотримуються кожної практики. Користувачі можуть швидко оцінити, які проєкти FLOSS дотримуються найкращих практик і, як результат, створювати безпечне ПЗ кращої якості. diff --git a/apps/site/pages/uk/download/package-manager/current.mdx b/apps/site/pages/uk/download/package-manager/current.mdx index 1c1b5e1966acc..8b614025c7f37 100644 --- a/apps/site/pages/uk/download/package-manager/current.mdx +++ b/apps/site/pages/uk/download/package-manager/current.mdx @@ -20,4 +20,5 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Перегляньте інші менеджери пакетів, які підтримуються спільнотою + diff --git a/apps/site/pages/uk/download/package-manager/index.mdx b/apps/site/pages/uk/download/package-manager/index.mdx index 773c2808e4a15..d772ef049cc28 100644 --- a/apps/site/pages/uk/download/package-manager/index.mdx +++ b/apps/site/pages/uk/download/package-manager/index.mdx @@ -20,4 +20,5 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Перегляньте інші менеджери пакетів, які підтримуються спільнотою + diff --git a/apps/site/pages/uk/download/prebuilt-binaries/current.mdx b/apps/site/pages/uk/download/prebuilt-binaries/current.mdx index b67bf809295e4..ee5f2d83f0638 100644 --- a/apps/site/pages/uk/download/prebuilt-binaries/current.mdx +++ b/apps/site/pages/uk/download/prebuilt-binaries/current.mdx @@ -20,4 +20,5 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Перегляньте бінарні файли нічних збірок або неофіційні збірки для інших платформ + diff --git a/apps/site/pages/uk/download/prebuilt-binaries/index.mdx b/apps/site/pages/uk/download/prebuilt-binaries/index.mdx index 1ee50b5a39f7d..0d0a6e3a5d189 100644 --- a/apps/site/pages/uk/download/prebuilt-binaries/index.mdx +++ b/apps/site/pages/uk/download/prebuilt-binaries/index.mdx @@ -20,4 +20,5 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS. Перегляньте бінарні файли нічних збірок, усі бінарні файли релізу або неофіційні збірки для інших платформ. + diff --git a/apps/site/pages/uk/download/prebuilt-installer/current.mdx b/apps/site/pages/uk/download/prebuilt-installer/current.mdx index 83713b2a1b951..05ba45d1fab18 100644 --- a/apps/site/pages/uk/download/prebuilt-installer/current.mdx +++ b/apps/site/pages/uk/download/prebuilt-installer/current.mdx @@ -22,4 +22,5 @@ Node.js містить . Перегляньте всі доступні опції завантаження Node.js Дізнайтеся більше про релізи Node.js + diff --git a/apps/site/pages/uk/download/prebuilt-installer/index.mdx b/apps/site/pages/uk/download/prebuilt-installer/index.mdx index ecbfeb4d53b88..2fcb5bd6067bb 100644 --- a/apps/site/pages/uk/download/prebuilt-installer/index.mdx +++ b/apps/site/pages/uk/download/prebuilt-installer/index.mdx @@ -22,4 +22,5 @@ Node.js містить . Перегляньте всі доступні опції завантаження Node.js Дізнайтеся більше про релізи Node.js + diff --git a/apps/site/pages/uk/download/source-code/current.mdx b/apps/site/pages/uk/download/source-code/current.mdx index de127381a2817..2d2846ddc04c7 100644 --- a/apps/site/pages/uk/download/source-code/current.mdx +++ b/apps/site/pages/uk/download/source-code/current.mdx @@ -20,4 +20,5 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Дізнайтеся, як зібрати Node.js із вихідного коду. + diff --git a/apps/site/pages/uk/download/source-code/index.mdx b/apps/site/pages/uk/download/source-code/index.mdx index de127381a2817..2d2846ddc04c7 100644 --- a/apps/site/pages/uk/download/source-code/index.mdx +++ b/apps/site/pages/uk/download/source-code/index.mdx @@ -20,4 +20,5 @@ Node.js містить . Дізнайтеся, як перевірити підписані SHASUMS Дізнайтеся, як зібрати Node.js із вихідного коду. + diff --git a/apps/site/pages/uk/index.mdx b/apps/site/pages/uk/index.mdx index 75d1d7d556be5..2b65d70048c87 100644 --- a/apps/site/pages/uk/index.mdx +++ b/apps/site/pages/uk/index.mdx @@ -9,8 +9,9 @@ layout: home

Запускайте JavaScript будь-де

- Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, - яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти. +Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, +яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти. +
@@ -45,87 +46,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Дізнайтеся більше про можливості Node.js із [нашими навчальними матеріалами](/learn). + diff --git a/apps/site/pages/zh-cn/about/index.mdx b/apps/site/pages/zh-cn/about/index.mdx index cd3daeb14bba7..47b787ffa40d5 100644 --- a/apps/site/pages/zh-cn/about/index.mdx +++ b/apps/site/pages/zh-cn/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -51,7 +51,7 @@ Node.js 在设计上受到了诸如 Ruby 的 [Event Machine][] 和 Python 的 [T HTTP 在 Node.js 中是第一类公民,设计时考虑了流式传输和低延迟。这使得 Node.js 非常适合作为 Web 库或框架的基础。 -Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child\_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 +Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/zh-cn/about/security-reporting.mdx b/apps/site/pages/zh-cn/about/security-reporting.mdx index e0ec739c92aab..fafe4d90c5cef 100644 --- a/apps/site/pages/zh-cn/about/security-reporting.mdx +++ b/apps/site/pages/zh-cn/about/security-reporting.mdx @@ -50,8 +50,15 @@ Node.js 项目为安全研究人员和负责任的公开披露提供官方漏洞 ## OpenSSF 最佳实践 - -OpenSSF Badge + + OpenSSF Badge 开源安全基金会(OpenSSF)[最佳实践徽章](https://github.com/coreinfrastructure/best-practices-badge) 是自由/自由和开源软件(FLOSS)项目展示他们遵循最佳实践的一种方式。 项目可以自愿地自我认证他们如何遵循每个最佳实践。 徽章的使用者可以快速评估哪些 FLOSS 项目正在遵循最佳实践,因此更有可能产生更高质量的安全软件。 diff --git a/apps/site/pages/zh-tw/about/index.mdx b/apps/site/pages/zh-tw/about/index.mdx index b297aa2df0fbb..81b70befaa623 100644 --- a/apps/site/pages/zh-tw/about/index.mdx +++ b/apps/site/pages/zh-tw/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/zh-tw/about/security-reporting.mdx b/apps/site/pages/zh-tw/about/security-reporting.mdx index 634022e514d6a..7f41b4ba9fcea 100644 --- a/apps/site/pages/zh-tw/about/security-reporting.mdx +++ b/apps/site/pages/zh-tw/about/security-reporting.mdx @@ -51,8 +51,15 @@ Node.js 專案為安全研究人員和盡責公開揭露設立了官方漏洞獎 ## OpenSSF 最佳實踐 - -OpenSSF 徽章 + + OpenSSF 徽章 開源安全基金會 (OpenSSF) [最佳實踐徽章](https://github.com/coreinfrastructure/best-practices-badge)的意義是為奉行最佳實踐的自由/開源軟體 (FLOSS) 專案提供背書。專案可以自發認證每項最佳實踐的遵循情況,徽章的使用者則可以快速評估哪些 FLOSS 專案確實遵循最佳實踐,因此更有可能產出安全又高品質的軟體。