Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 9

NODEJS

Họ và tên: Nguyễn Đình Hưng - 1816061003


Đặng Ngọc Duy -
Lê Nguyễn Thế Khoa -
Nguyễn Lê Trung Minh -
Nguyễn Ngọc Huy –
Hồ Lê Thanh Bảo -
GV: TS Hoàng Công trình
Giới thiệu NodeJS
NodeJS là gì?

NodeJS là một nền tảng Server side được xây dựng dựa trên Javascript Engine (V8 Engine).
Node.js được phát triển bởi Ryan Dahl năm 2009 và phiên b ản cu ối cùng là v0.10.36. Đ ịnh
nghĩa NodeJs bởi tài liệu chính thức như sau:
Node.js là một nền tảng dựa vào Chrome Javascript runtime đ ể xây d ựng các ứng d ụng
nhanh, có độ lớn. Node.js sử dụng các phần phát sinh các sự ki ện (event-driven), mô hình
non-blocking I/O để tạo ra các ứng dụng nhẹ và hi ệu qu ả cho các ứng d ụng về d ữ li ệu th ời
gian thực chạy trên các thiết bị phân tán.
NodeJs là một mã nguồn mở, đa nền tảng cho phát triển các ứng d ụng phía Server và các
ứng dụng liên quan đến mạng. Ứng dụng Node.js được viết bằng Javascript và có th ể ch ạy
trong môi trường Node.js trên hệ điều hành Window, Linux...
Node.js cũng cung cấp cho chúng ta các module Javascript đa d ạng, có th ể đ ơn gi ản hóa s ự
phát triển của các ứng dụng web sử dụng Node.js với các phần m ở rộng.
Node.js = Môi trường Runtime + Các thư vi ện Javascript
Đặc điểm của NodeJS:
1) Không đồng bộ và Phát sinh sự kiện (Event Driven): Tất các các APIs của thư viện Node.js đều không đồng bộ, nghĩa là không blocking
(khóa). Nó rất cần thiết vì Node.js không bao giờ đợi một API trả về dự liệu. Server chuyển sang một API sau khi gọi nó và có cơ chế thông
báo về Sự kiện của Node.js giúp Server nhận đựa phản hồi từ các API gọi trước đó.
2) Chạy rất nhanh: Dựa trên V8 Javascript Engine của Google Chrome, thư viện Node.js rất nhanh trong các quá trình thực hiện code.
3) Các tiến trình đơn giản nhưng hiệu năng cao: Node.js sử dụng một mô hình luồng đơn (single thread) với các sự kiện lặp. Các cơ chế sự
kiện giúp Server trả lại các phản hồi với một cách không khóa và tạo cho Server hiệu quả cao ngược lại với các cách truyền thống tạo ra một số
lượng luồng hữu hạn để quản lý request. Nodejs sử dụng các chương trình đơn luồng và các chương trình này cung cấp các dịch vụ cho số
lượng request nhiều hơn so với các Server truyền thống như Apache HTTP Server.
4) Không đệm: Ứng dụng Node.js không lưu trữ các dữ liệu buffer.
5) Có giấy phép: Node.js được phát hành dựa vào MIT License.

NodeJs được sử dụng ở đâu


Dưới đây là các lĩnh vực mà Node.js được sử dụng như là m ột sự lựa ch ọn hoàn h ảo:
 Các ứng dụng về I/O
 Các ứng dựng về luồng dữ liệu
 Các ứng dụng về dữ liệu hướng đến thời gian thực
 Các ứng dụng dựa vào JSON APIs
 Các ứng dụng Single Page Application
Nodejs không nên sử dụng ở đâu:
 Nó không nên sử dụng trong các ứng dụng đòi h ỏi về CPU.
Các thành phần quan trọng trong Node.js
Module trong Node.js
Node.js sử dụng kiến trúc Module để đơn giản hóa việc tạo ra các ứng dụng phức tạp. Module là giống như các thư viện trong C, C#, Java, … Mỗi module chứa một tập các hàm chức năng có liên quan đến
một "đối tượng" của Module. Ví dụ, http là Module chứa các hàm cụ thể liên quan đến thiết lập HTTP. Node.js cung cấp một vài các Module core kèm theo để hỗ trợ chúng ta truy cập file trên hệ thống, tạo
các máy chủ HTTP, TCP/UDP, và các hàm tiện ích nhỏ hữu dụng khác.

* Trước khi sử dụng Module, bạn đơn giản chỉ cần khai báo với hàm require(), như sau:
 var http = require("http");
Node.js chỉ là môi trường, bạn phải tự làm mọi thứ!
require() là hàm trả về tham chiếu tới một Module cụ thể. Trong trường hợp của đoạn mã trên, chúng ta đang khai báo một
tham chiếu tới http Module và lưu nó vào biến http.
Trong đoạn mã trên, chúng truyền một tham số là tên của Module. Điều này báo cho Node sẽ tìm một Module tên là http
trong thư mục node_modules của ứng dụng. Nếu nó không thấy, Node sẽ tiếp tục tìm Module đó ở thư mục global cài đặt
node.
* Lệnh kiểm tra thư mục global cài đặt node_modules, bạn mở giao diện dòng lệnh CMD và gõ lệnh sau:
 npm root -g
* Quay trở lại vấn đề, bạn có thể chỉ rõ file bằng việc truyền vào tham số là đường dẫn tương
đối ./path/to/my/module.js hoặc tuyệt đối /path/to/my/module.js
 var myModule = require('./myModule.js')
Tóm lại, Module là các đoạn mã được đóng gói lại với nhau. Mã trong một Module thường là private – nghĩa là các hàm, biến được định nghĩa
và truy cập bởi bên trong của Module. Nhưng, bạn có thể chìa ra các api là các hàm và/hoặc biến để sử dụng bên ngoài Module. Bằng cách sử
dụng 1 đối tượng exports, xem ví dụ sau đây:
var PI = Math.PI;

exports.dientich = function (r) {


return PI * r * r;
};

exports.chuvi = function (r) {


return 2 * PI * r;
};
Đoạn mã trên tạo ra một biến PI và nó chỉ có thể truy cập trong Module ta đang định nghĩa. Bằng việc sử dụng exports để chìa ra 2 hàm sử dụng
bên ngoài Module là dientich() và chuvi() . Như vậy, giả sử ta đang viết mã trên file ./myModule.js thì biến khai báo tham chiếu myModule có
thể gọi hàm dientich() và chuvi()

Global Scope trong Node.js


 Node.js là môi trường cho phép lập trình sử dụng JavaScript ở phía server và chạy trên Google's V8 JavaScript engine. Nh ư
vậy, chúng ta nên thực hiện các đoạn mã như khi sử dụng lập trình ở phía Client. Ví dụ, chúng ta nên hạn ch ế sử dụng bi ến
global. Tuy nhiên, nếu muốn sử dụng, bạn có thể dễ dàng tạo một biến global bằng việc định nghĩa tên biến không có t ừ khóa
var, như sau:
globalVariable = 1;
globalFunction = function () { ... };
 Một lần nữa, biến global nên được hạn chế đến mức tối đa. Vì thế, hãy cần thận và nhớ sử dụng từ khóa var để khai báo bi ến.

You might also like