Rumah >hujung hadapan web >tutorial js >Pengenalan kepada Node.js
Perhatikan bahawa sepanjang artikel, saya akan menggunakan "nod" dan "node.js" secara bergantian.
mata utama
Apa itu node.js?
Terdapat banyak definisi di Internet. Mari kita lihat beberapa definisi popular. Berikut adalah apa yang dikatakan di laman web projek: & gt;Stack Overflow menyediakan: & gt;
baik, "berasaskan acara", "tidak menyekat", "Asynchronous I/O"-Sukar untuk mencerna banyak maklumat sekaligus. Oleh itu, mari kita berurusan dengan ini dari perspektif yang berbeza, mula -mula memberi tumpuan kepada perincian lain yang disebutkan dalam dua deskripsi ini - enjin V8 JavaScript.
bagaimana memasang node.js?
Dalam bahagian ini, kami akan memasang nod dan menulis beberapa program mudah. Kami juga akan belajar tentang NPM, pengurus pakej yang dibundel dengan nod.fail binari nod dan pengurus versi
"Hello, dunia!"
Ini menggunakan modul konsol terbina dalam nod untuk memaparkan mesej dalam tetingkap terminal. Untuk menjalankan contoh ini, masukkan arahan berikut:
<code class="language-javascript">console.log("Hello, World!");</code>
Jika node.js dikonfigurasi dengan betul, "Hello, dunia!"
<code class="language-bash">node hello.js</code>
node.js memberikan sokongan yang sangat baik untuk JavaScript moden
<code class="language-javascript">console.log("Hello, World!");</code>
Simpan kod ini ke fail yang bernama index.js dan jalankan dari terminal menggunakan nod perintah index.js. Anda harus melihat bahawa Brendan Eich adalah pencipta JavaScript!
Pengenalan kepada NPM, Pengurus Pakej JavaScript
Seperti yang disebutkan sebelumnya, Node dilengkapi dengan pengurus pakej yang dipanggil NPM. Untuk memeriksa versi mana yang dipasang pada sistem anda, taipkan NPM -V. Di samping menjadi pengurus pakej JavaScript, NPM juga merupakan pusat pendaftaran perisian terbesar di dunia. Terdapat lebih daripada 1,000,000 pakej kod JavaScript yang tersedia untuk dimuat turun, dengan berbilion muat turun setiap minggu. Mari kita lihat dengan cepat cara memasang pakej menggunakan npm.
Buka terminal anda dan taipkan yang berikut:
<code class="language-bash">node hello.js</code>
Ini akan memasang pakej jshint secara global pada sistem anda. Kita boleh menggunakannya untuk membuang fail index.js dalam contoh sebelumnya:
<code class="language-javascript">function upcase(strings, ...values) { return values.map(name => name[0].toUpperCase() + name.slice(1)) .join(' ') + strings[2]; } const person = { first: 'brendan', last: 'eich', age: 56, position: 'CEO of Brave Software', }; const { first, last } = person; const emoticon = [ ['┌', '('], ['˘', '⌣'], ['˘', ')', 'ʃ'] ]; console.log( upcase`${first} ${last} is the creator of JavaScript! ` + emoticon.flat().join('') );</code>
Anda kini harus melihat banyak kesilapan yang berkaitan dengan ES6. Jika anda ingin membetulkannya, tambah / * Jshint Esversion: 6 * / ke bahagian atas fail index.js, ulangi perintah, dan serat harus lulus. Jika anda ingin menyemak Lint, lihat perbandingan alat Lint JavaScript.
kita juga boleh memasang pakej secara tempatan ke dalam projek dan bukannya global ke sistem kami. Buat folder ujian dan buka terminal dalam direktori itu. Jenis seterusnya yang berikut:
<code class="language-bash">npm install -g jshint</code>
Ini akan membuat dan mengisi fail Package.json secara automatik dalam folder yang sama. Seterusnya, pasangkan pakej Lodash menggunakan NPM dan simpannya sebagai kebergantungan projek:
<code class="language-bash">jshint index.js</code>
Buat fail bernama Test.js dan tambahkan yang berikut:
<code class="language-bash">npm init -y</code>
Akhirnya, jalankan skrip menggunakan nod test.js. Anda harus melihat output [1, 2, 3] ke terminal.
Jika anda melihat kandungan direktori ujian, anda akan melihat folder yang dipanggil node_modules. Di sinilah NPM menyelamatkan mana -mana perpustakaan yang Lodash dan Lodash bergantung kepada. Folder node_modules tidak boleh diperiksa dalam kawalan versi, dan sebenarnya, ia boleh dicipta semula pada bila -bila masa dengan menjalankan pemasangan NPM dalam akar projek. Jika anda membuka fail Package.json, anda akan melihat Lodash yang disenaraikan di bawah medan Dependencies. Dengan menentukan kebergantungan projek dengan cara ini, anda boleh membenarkan mana -mana pemaju di mana -mana untuk mengklonkan projek anda dan menjalankan semua pakej yang anda perlukan dengan pemasangan NPM. Jika anda ingin mengetahui lebih lanjut mengenai npm, pastikan anda membaca artikel kami NPM Beginner's Guide - Node Package Manager.
Apakah node.js digunakan?
Sekarang kita sudah tahu apa nod dan npm dan bagaimana untuk memasangnya, kita dapat mengalihkan perhatian kita kepada salah satu kegunaan umum mereka: memasang (melalui npm) dan menjalankan (melalui nod) pelbagai alat binaan - direka untuk Automatikkan proses pembangunan aplikasi JavaScript moden. Alat membina ini begitu pelbagai yang dalam persekitaran JavaScript moden, anda tidak boleh pergi terlalu jauh tanpa menemui mereka. Mereka boleh digunakan untuk apa -apa, dari menggabungkan fail JavaScript dan kebergantungan kepada aset statik, untuk menjalankan ujian, atau linter kod automatik dan pemeriksaan gaya. Kami mempunyai banyak artikel di SitePoint untuk menerangkan alat bangunan. Berikut adalah beberapa artikel kegemaran saya:
node.js membolehkan kami menjalankan JavaScript pada pelayan
Seterusnya, mari kita lihat salah satu kes penggunaan terbesar Node.js - menjalankan JavaScript pada pelayan. Ini bukan konsep baru, dan ia mula -mula dicuba oleh Netscape pada tahun 1994. Walau bagaimanapun, Node.js adalah pelaksanaan pertama untuk mendapatkan apa -apa rayuan sebenar, dan ia menawarkan beberapa kelebihan unik ke atas bahasa tradisional. Node kini memainkan peranan penting dalam susunan teknologi banyak syarikat terkenal. Mari kita lihat apa manfaat ini.model pelaksanaan node.js
Atau, jika anda suka video, lihat ucapan yang indah ini: Apa sebenarnya gelung acara? Ia tidak unik untuk Node, tetapi ia menerangkan konsepnya dengan baik. Adakah terdapat kelemahan? "Hello, dunia!"
Untuk menjalankan kod ini, salin kod itu ke dalam fail bernama Hello-world-server.js dan jalankan dengan node hello-world-server.js. Buka penyemak imbas dan navigasi ke https://www.php.cn/link/4a914e5c38172ae9b61780ffbd0b2f90 untuk melihat "Hello, World!" Sekarang mari kita lihat kodnya. Kita mula -mula memerlukan modul HTTP asli nod. Kami kemudian menggunakan kaedah CreateServer untuk membuat objek pelayan web baru, dan kami lulus fungsi tanpa nama kepadanya. Fungsi ini akan dipanggil untuk setiap sambungan baru yang ditubuhkan dengan pelayan. Fungsi tanpa nama dipanggil dengan dua parameter (permintaan dan tindak balas). Ini mengandungi permintaan dan respons dari pengguna, yang kami gunakan untuk menghantar 200 kod status HTTP serta "Hello World!" Akhirnya, kami memberitahu pelayan untuk mendengar permintaan masuk pada port 3000 dan mengeluarkan mesej ke terminal untuk memberitahu kami bahawa ia sedang berjalan. Jelas sekali terdapat lebih banyak untuk membuat atau bahkan pelayan mudah dalam nod (contohnya, sangat penting untuk mengendalikan kesilapan dengan betul), jadi jika anda ingin mengetahui lebih lanjut, saya cadangkan anda menyemak dokumentasi atau menyemak tutorial kami. jenis aplikasi apa yang sesuai node.js? Node amat sesuai untuk membina aplikasi yang memerlukan beberapa bentuk interaksi masa nyata atau kerjasama-contohnya, aplikasi seperti laman sembang atau codeshare, di mana anda boleh menonton orang lain mengedit dokumen dalam masa nyata. Ia juga sesuai untuk membina API di mana anda mengendalikan banyak permintaan I/O yang didorong (seperti permintaan yang memerlukan operasi pada pangkalan data), atau laman web yang melibatkan aliran data, kerana nod membolehkan anda memproses fail semasa mereka masih memuat naik. Jika aspek masa nyata nod ini adalah apa yang anda ingin ketahui lebih lanjut, lihat tutorial kami untuk membina aplikasi sembang langsung. Walau bagaimanapun, tidak semua orang akan membina Trello seterusnya atau Dokumen Google yang akan datang, dan sebenarnya, tidak ada sebab anda tidak boleh menggunakan Node untuk membina aplikasi CRUD yang mudah. Walau bagaimanapun, jika anda mengikuti laluan ini, anda akan mendapati bahawa node adalah sangat asas dan cara anda membina dan mengatur aplikasi anda sebahagian besarnya terpulang kepada anda. Anda boleh menggunakan pelbagai rangka kerja untuk mengurangkan kod boilerplate, di mana Express telah menubuhkan dirinya sebagai pemimpin. Walau bagaimanapun, walaupun penyelesaian seperti Express adalah minimum, yang bermaksud bahawa jika anda ingin melakukan sesuatu yang sedikit luar biasa, anda perlu memperkenalkan modul lain dari npm. Ini sangat berbeza dengan kerangka seperti Rails atau Laravel, yang menawarkan banyak ciri dari kotak. Jika anda ingin belajar bagaimana untuk membina aplikasi asas, lebih tradisional, lihat tutorial kami tentang cara membina dan mengatur aplikasi MVC Node.js. Apakah kelebihan node.js? Selain dari kelajuan dan skalabiliti, kelebihan yang sering disebutkan menggunakan JavaScript dalam pelayan web dan penyemak imbas adalah bahawa otak anda tidak lagi perlu menukar mod. Anda boleh melakukan semua kerja dalam bahasa yang sama, sebagai pemaju, yang menjadikan anda lebih cekap (dan mudah -mudahan lebih bahagia). Sebagai contoh, anda boleh berkongsi kod antara pelayan dan klien. Satu lagi kelebihan penting nod ialah ia menggunakan JSON. JSON mungkin merupakan format pertukaran data yang paling penting di web dan juga bahasa yang sama untuk berinteraksi dengan pangkalan data objek, seperti MongoDB. JSON sangat sesuai untuk program JavaScript, yang bermaksud bahawa apabila anda menggunakan nod, data mengalir dengan lancar antara lapisan tanpa memformat semula. Anda boleh menggunakan sintaks dari penyemak imbas anda ke pelayan anda ke pangkalan data anda. Akhirnya, JavaScript ada di mana -mana: kebanyakan kita sudah biasa dengan JavaScript, atau telah menggunakannya pada satu ketika. Ini bermakna peralihan ke pembangunan nod mungkin lebih mudah daripada beralih ke bahasa-bahasa yang lain. Untuk mengutip Craig Buckler dalam nodnya vs PHP Showdown, JavaScript mungkin bahasa yang paling disalahpahami di dunia -tetapi sekali konsep itu diklik, ia menjadikan bahasa lain kelihatan kekok. Kegunaan lain dari node Ia tidak berhenti di pelayan. Node.js mempunyai banyak kegunaan lain yang menarik dan bervariasi! Sebagai contoh, ia boleh digunakan sebagai bahasa skrip untuk melaksanakan tugas-tugas yang berulang-ulang atau rawan secara automatik pada PC anda. Ia juga boleh digunakan untuk menulis alat baris arahan anda sendiri, seperti penjana gaya yeoman ini untuk membina projek-projek baru. Node.js juga boleh digunakan untuk membina aplikasi desktop silang platform, dan juga untuk membuat bot anda sendiri. Apa lagi yang anda tidak suka? Kesimpulan JavaScript ada di mana -mana, dan nod juga merupakan topik yang besar dan luas. Walau bagaimanapun, saya berharap dalam artikel ini, saya telah memberikan anda perspektif lanjutan yang mesra pemula pada Node.js dan contoh utamanya yang bermula dengan. Saya juga berharap bahawa perkara -perkara akan lebih masuk akal apabila anda membaca semula definisi yang kita lihat sebelum ini. Node.js adalah runtime I/O yang berasaskan peristiwa, tidak disegerakan, yang menggunakan enjin JavaScript V8 Google dan perpustakaan LIBUV. Jika anda mempunyai sebarang pertanyaan atau komen, jangan ragu untuk menghubungi saya di Twitter. FAQs Mengenai Node.js JavaScript adalah bahasa pengaturcaraan yang digunakan terutamanya untuk pembangunan web sisi klien. Ia adalah bahasa yang berjalan di penyemak imbas. Node.js, sebaliknya, adalah persekitaran runtime yang membolehkan JavaScript berjalan di sisi pelayan. Ia dibina di atas enjin V8 JavaScript Chrome. Node.js memanjangkan keupayaan JavaScript untuk membolehkannya berinteraksi dengan API I/O, melaksanakan fungsi rangkaian, dan pangkalan data akses, yang biasanya tidak terdapat dalam JavaScript berasaskan penyemak imbas. node.js sangat popular dalam pengaturcaraan sisi pelayan kerana seni bina yang tidak menyekat, yang didorong oleh peristiwa. Ini bermakna ia boleh mengendalikan pelbagai permintaan pelanggan secara serentak tanpa menunggu tugas seperti permintaan rangkaian atau operasi pangkalan data untuk diselesaikan. Ini menjadikan Node.js cekap dan sesuai untuk aplikasi masa nyata seperti aplikasi sembang, alat kerjasama, dan pelayan permainan. node.js menggunakan model I/O yang didorong oleh peristiwa, tidak menyekat untuk mengendalikan permintaan serentak. Apabila permintaan dibuat, Node.js melakukan tindakan dan kemudian meneruskan ke permintaan seterusnya tanpa menunggu tindakan sebelumnya selesai. Selepas operasi selesai, satu peristiwa akan dicetuskan dan fungsi panggil balik yang sepadan akan dilaksanakan. Ini membolehkan Node.js mengendalikan ribuan sambungan serentak menggunakan pelayan tunggal. Walaupun node.js digunakan terutamanya untuk pembangunan sisi pelayan, ia juga boleh digunakan untuk pembangunan front-end. Node.js menyediakan alat dan kerangka, seperti Express.js dan Socket.io, untuk membina aplikasi front-end yang kuat. Di samping itu, Node.js digunakan untuk menjalankan alat binaan seperti Babel dan Webpack, yang penting dalam pembangunan front-end moden. NPM atau Pengurus Pakej Node adalah alat yang sangat diperlukan dalam pembangunan Node.js. Ia adalah pengurus pakej yang membolehkan pemaju memasang, mengemas kini, dan mengurus pelbagai perpustakaan dan kebergantungan yang diperlukan oleh aplikasi Node.js. NPM menyediakan repositori pakej sumber terbuka yang besar yang menjadikannya lebih mudah bagi pemaju untuk berkongsi dan menggunakan semula kod. node.js berbeza dari php dan ruby on rel dalam beberapa cara. Tidak seperti PHP segerak dan ruby pada rel, node.js adalah asynchronous dan tidak menyekat, bermakna ia boleh mengendalikan pelbagai permintaan secara serentak. Ini menjadikan Node.js lebih cekap dan sesuai untuk aplikasi masa nyata. Di samping itu, Node.js menggunakan JavaScript, bahasa yang banyak pemaju biasa, dengan itu mengurangkan lengkung pembelajaran. node.js mempunyai pelbagai fungsi dan boleh digunakan dalam pelbagai aplikasi. Ia amat sesuai untuk membina aplikasi web berskala, aplikasi masa nyata seperti aplikasi sembang dan pelayan permainan, alat kerjasama dan pelayan API. Syarikat -syarikat seperti Netflix, LinkedIn, dan Uber menggunakan Node.js dalam susunan teknologi mereka kerana ia adalah cekap dan cepat. Walaupun node.js memberikan banyak faedah, ia juga menghadapi beberapa cabaran. Sifat asynchronous, tidak menyekat boleh membuat kod sukar difahami dan debug. Di samping itu, kerana Node.js adalah satu-satunya tugas, tugas intensif CPU boleh menghalang seluruh pelayan, yang mempengaruhi prestasi. Walau bagaimanapun, cabaran -cabaran ini dapat dikurangkan dengan amalan pengekodan yang baik dan penggunaan alat dan perpustakaan yang betul. node.js mengendalikan kesilapan melalui panggilan balik ralat pertama. Ini bermakna bahawa parameter pertama yang diserahkan kepada fungsi panggil balik adalah objek ralat. Jika ralat berlaku semasa operasi tak segerak, ia diluluskan sebagai parameter pertama kepada fungsi panggil balik. Jika tiada ralat berlaku, parameter ini akan menjadi batal. Ya, Node.js boleh berinteraksi dengan pelbagai jenis pangkalan data, termasuk pangkalan data SQL dan NoSQL. Beberapa perpustakaan dan Orms (pemetaan relasi objek) boleh didapati, seperti sekuel untuk pangkalan data SQL dan Mongoose untuk MongoDB, yang menjadikannya lebih mudah untuk berinteraksi dengan pangkalan data dalam aplikasi Node.js. semua format gambar kekal sebagai
Hakikat bahawa nod berjalan dalam satu benang tidak membawa beberapa batasan. Sebagai contoh, menyekat panggilan I/O harus dielakkan, operasi intensif CPU harus diserahkan kepada benang pekerja, dan kesilapan harus selalu dikendalikan dengan betul untuk mengelakkan melanggar keseluruhan proses. Sesetengah pemaju juga tidak menyukai gaya pengekodan berasaskan panggilan balik yang dikenakan oleh JavaScript (begitu banyak sehingga terdapat laman web yang didedikasikan untuk kengerian menulis JavaScript asynchronous). Tetapi dengan ketibaan Janji Asli, diikuti oleh Async menunggu, kawalan proses dalam JavaScript moden lebih mudah dari sebelumnya.
<code class="language-javascript">console.log("Hello, World!");</code>
Apakah perbezaan antara Node.js dan JavaScript?
Mengapa node.js sangat popular dalam pengaturcaraan sisi pelayan?
Bagaimana menangani permintaan serentak?
Bolehkah node.js digunakan untuk pembangunan front-end?
Apakah peranan NPM dalam node.js?
Bagaimanakah Node.js berbanding dengan teknologi sisi pelayan lain seperti PHP atau Ruby on Rails?
Apakah beberapa kes penggunaan untuk node.js?
Apakah beberapa cabaran menggunakan node.js?
Bagaimana menangani kesilapan dalam node.js?
Bolehkah node.js digunakan dengan pangkalan data?
.jpg
atau .webp
.
Atas ialah kandungan terperinci Pengenalan kepada Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!