Rumah  >  Artikel  >  hujung hadapan web  >  Apakah enjin node.js?

Apakah enjin node.js?

青灯夜游
青灯夜游asal
2022-03-22 18:25:362860semak imbas

Enjin node.js ialah "Chrome V8". Node.js terutamanya terdiri daripada enjin Chrome V8, perpustakaan standard dan modul tempatan, antaranya, enjin V8 bertanggungjawab untuk menghurai dan melaksanakan kod JavaScript secara langsung menyusun kod JS ke dalam kod mesin asli dan menggunakan mekanisme caching untuk meningkatkan prestasi .

Apakah enjin node.js?

Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer DELL G3.

Apakah nodejs?

Node.js ialah persekitaran masa jalan JavaScript berdasarkan enjin Chrome V8.

Node.js menggunakan model I/O yang dipacu peristiwa dan tidak menyekat, menjadikannya ringan dan cekap.

Ringkasnya, Node.js ialah JavaScript yang dijalankan di bahagian pelayan dan JavaScript digunakan untuk pengaturcaraan di bahagian pelayan.

Node.js ialah platform pembangunan yang membenarkan JavaScript dijalankan pada bahagian pelayan Ia meluaskan jangkauan JavaScript ke bahagian pelayan dan boleh berada pada kedudukan yang sama dengan PHP, JSP, Python dan Ruby.

Node.js bukan bahasa bebas Tidak seperti PHP, JSP, Python, Perl dan Ruby, yang merupakan kedua-dua bahasa dan platform, Node.js menggunakan JavaScript untuk pengaturcaraan dan berjalan pada enjin JavaScript. V8).

Komposisi pembangunan nodejs adalah untuk menggunakan sejumlah besar pakej pihak ketiga yang disediakan oleh komuniti pembangunan npm ditambah bahasa skrip ECMAScript asas dan satu siri antara muka pengaturcaraan yang disediakan oleh platform nod untuk pengaturcaraan.

Komposisi Node.js

Waktu jalan Node.js terutamanya terdiri daripada enjin V8, perpustakaan standard dan modul tempatan, terutamanya modul tempatan. jumlah Node.js menentukan kekuatan fungsi Node.js dari peringkat bawah.

1) Enjin V8

Enjin V8 ialah penterjemah JavaScript, yang bertanggungjawab untuk menghuraikan dan melaksanakan kod JavaScript.

Enjin V8 menggunakan banyak teknologi daripada mesin maya Java dan pengkompil C Ia menyusun kod JavaScript terus ke dalam kod mesin asli dan menggunakan mekanisme caching untuk meningkatkan prestasi, yang menjadikan JavaScript berjalan sepantas kod binari. program.

2) Modul tempatan

Node.js menyepadukan banyak perpustakaan sumber terbuka berprestasi tinggi, yang dilaksanakan dalam bahasa C/C, seperti:

模块 说明
libuv 一个跨平台的、基于事件驱动的异步 I/O 库。但是 libuv 不仅限于 I/O,它还提供了进程管理、线程池、信号处理、定时器等其它功能。

Linux 中一切皆文件,这里的 I/O 不仅仅包括文件读写,还包括数据库读写、网络通信(socket)等。
nmp Node.js 包管理器,可以下载包、安装包、卸载包、更新包、上传包等。
http_parser 一款由C语言编写的轻量级 HTTP 解析器,用以支持 Web 应用开发。
zlib 工业级的数据压缩/解压模块,Nodejs 借助 zlib 来创建同步、异步或者流式的压缩/解压接口。
OpenSSL 该模块提供了经过严密测试的许多加密/解密功能,现代 Web 依赖这些功能来实现安全性,比如 SSL 协议和 https 协议。
c-ares 异步 DNS 查询和解析库。

Node.js menjalankan kod JavaScript terus pada komputer dan memberikan keupayaan JavaScript yang berkuasa, jadi terdapat banyak perbezaan besar antara modul setempatnya dan masa jalan dalam penyemak imbas, dan hampir tiada sambungan. Node.js hampir sepenuhnya meninggalkan penyemak imbas dan membina masa jalan JavaScript baharu dari awal.

3) Pustaka standard

Modul tempatan ditulis dalam C/C dan Node.js adalah untuk pembangun JavaScript, jadi antara muka C/C modul tempatan mesti dikapsulkan , menyediakan satu set antara muka JavaScript yang elegan kepada pembangun, dan mengekalkan ketekalan antara muka pada platform yang berbeza (sistem pengendalian).

Set antara muka JavaScript ini ialah perpustakaan standard Node.js. Sama ada perpustakaan standard adalah elegan dan berkuasa menentukan kemudahan penggunaan Node.js dan secara langsung mempengaruhi prestasi pasaran Node.js.

Ringkasan

Enjin V8 dan banyak modul tempatan sudah siap dibuat. Tugas utama Node.js ialah memilih yang sesuai modul untuk disepadukan Mereka disepadukan bersama dan antara muka JavaScript ditulis.

Sudah tentu, tidak semua modul tempatan boleh didapati sesuai Node.js juga telah menulis beberapa modul sendiri, wakil biasa ialah Libuv. Libuv ialah modul teras dan paling asas Node.js dibina sepenuhnya berdasarkan Libuv.

Anda mungkin pernah mendengar bahawa Node.js menggunakan seni bina I/O tak segerak berasaskan acara, Ini adalah ciri terbesar Node.js dan perbezaan terbesar antaranya dengan bahasa skrip lain . Keupayaan js ini dicapai dengan bergantung pada Libuv.

Libuv sangat berkuasa sehingga pegawai memutuskan untuk memisahkannya daripada Node.js, mengeluarkannya sebagai pustaka rangkaian yang berasingan dan menjadikannya sumber terbuka dan percuma. Kini Libuv telah menjadi sangat popular, dan dikenali sebagai "tiga perpustakaan rangkaian C/C utama" bersama-sama dengan perpustakaan tradisional Libevent dan libev.

Node.js terkenal terutamanya kerana ia menggunakan enjin V8 dan perpustakaan Libuv: enjin V8 memastikan Node.js berjalan dengan cekap, dan perpustakaan Libuv menyediakan I/O tak segerak berdasarkan acara kebolehan.

Ringkasan

Node.js ialah masa jalan JavaScript, yang membenarkan JavaScript dipisahkan daripada persekitaran penyemak imbas dan boleh dijalankan terus pada komputer. Sangat meluaskan penggunaan JavaScript. Kita harus menganggap JavaScript pada tahap yang sama seperti bahasa pengaturcaraan lain seperti Python, Java dan Ruby, dan tidak lagi menganggapnya sebagai "alat."

Akhir sekali, mari kita ringkaskan sejarah JavaScript dan Node.js:

  • Pelayar Netscape memperoleh skrip JavaScript, memberikan keupayaan pengaturcaraan halaman web

  • Pelayar Chrome memperoleh enjin V8, yang meningkatkan prestasi JavaScript

  • Enjin V8 membina Node.js, mengembangkan keupayaan pengaturcaraan JavaScript

  • Node.js memperoleh perpustakaan Libuv, menambah alat yang sangat baik untuk pembangunan rangkaian.

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Apakah enjin node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah objek peringkat atas nodArtikel seterusnya:Apakah objek peringkat atas nod