openplanning

Giới thiệu về NodeJs

  1. NodeJs là gì?

1. NodeJs là gì?

Trước khi trực tiếp trả lời câu hỏi "NodeJS là gì?", tôi sẽ giới thiệu cho bạn bối cảnh ra đời của NodeJS, điều này giúp bạn dễ hiểu được vấn đề hơn.
Chrome & V8 Javascript Engine
Ai cũng biết Chrome là một trình duyệt nổi tiếng và miễn phí của Google, phiên bản đầu tiên được phát hành vào tháng 12 năm 2008. Trong đó V8 JavaScript Engine (Bộ máy Javascript) là một chương trình viết trên C++, mã nguồn mở, được sử dụng trong Google Chrome để phân tích và thực thi mã Javascript với hiệu xuất cao. Nó phân tích (parse) cú pháp Javascript và thông dịch (Interpret) thành mã máy tính để thực thi.
Chú ý: Các trình duyệt khác Chrome có thể sử dụng Javascript Engine khác.
BrowserJavascript Engine
ChromeV8 JS Engine
FirefoxSpiderMonkey
IE, EdgeChakra
NodeJS
Bạn có thể sử dụng "Cú pháp của Javascript" để viết một đoạn mã kết nối vào cơ sở dữ liệu nào đó. V8 JS Engine sẽ phân tích mã Javascript của bạn và thông dịch nó thành mã máy tính để thực thi. Tất nhiên, đoạn mã như vậy không phải để thực thi ở phía Client (trình duyệt), nó được sử dụng ở phía Server (Server side). Như vậy một khả năng đã được mở ra, bạn có thể sử dụng "Cú pháp Javascript" để viết ứng dụng web tại phía Server thay vì sử dụng PHP hoặc Java.
** Javascript code **
const mysql = require('mysql');
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'user',
  password: 'password',
  database: 'database name'
});
connection.connect((err) => {
  if (err) throw err;
  console.log('Connected!');
});
NodeJS ra đời, V8 Javascript Engine là một trong các thành phần của NodeJS. Dưới đây là hình ảnh kiến trúc của NodeJS:
Nói một cách ngắn gọn NodeJS có thể thay thế cho PHP, Java để xây dựng ứng dụng Web tại phía Server. Thay vì viết mã bằng PHP, Java bạn sử dụng cú pháp của Javascript.
Vậy NodeJS là gì?
NodeJS là một môi trường chạy JavaScript (JavaScript Runtime Environment) bên ngoài trình duyệt. NodeJS cũng bao gồm các thành phần, thư viện khác để nó có thể hoạt động như một Web Application Server.
Chú ý quan trọng: NodeJS không phải là một ngôn ngữ mở rộng của Javascript.