Node.js Và MongoDB - Cặp Đôi Hoàn Hảo Cho Backend - Phần 1

1. Node.js và MongoDb là gì?

Node.js là gì?

Node.js là một nền tảng chạy trên môi trường V8 JavaScript runtime - một trình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome. Bình thường thì bạn cũng có thể tải bộ V8 và nhúng nó vào bất cứ thứ gì; Node.js làm điều đó đối với các web server. JavaScript suy cho cùng cũng chỉ là một ngôn ngữ - vậy thì không có lý do gì để nói nó không thể sử dụng trên môi trường server tốt như là trong trình duyệt của người dùng được.

Tại sao lại sử dụng Node.js?

Đầu tiên là ưu điểm về tốc độ thực thi và khả năng mở rộng. Node.js có tốc độ rất nhanh. Đó là một yêu cầu khá quan trọng khi bạn là một startup đang cố gắng tạo ra một sản phẩm lớn và muốn đảm bảo có thể mở rộng nhanh chóng, đáp ứng được một lượng lớn người dùng khi trang web của bạn phát triển lên. 
Node.js có thể xử lý hàng ngàn kết nối đồng thời trong khi PHP sẽ chỉ có nước sụp đổ. Bên cạnh các lợi ích về tốc độ thực thi và khả năng mở rộng, có thể bạn cũng đã biết một chút về JavaScript, vì vậy tại sao lại phải phiền toái để học thêm về một ngôn ngữ lập trình hoàn toàn mới như PHP? Và sau đó bạn sẽ có một sự phấn khích khi học về một cái gì đó mới mẻ và gần như chưa được khám phá. Bạn còn nhớ cái cảm giác khi mà một cái gì đó mới xuất hiện và sau đó trở thành phổ biến khắp mọi nơi mà bạn hối tiếc đã không học về nó sớm hơn, và mãi mãi chỉ là người đến sau? Đừng phạm phải sai lầm như vậy lần này nữa. Node.js đang ngày càng trở nên lớn mạnh hơn.

MongoDB là gì?

Hiểu một cách nôm na thì MongoDB là một mã nguồn mở và là một tập tài liệu dùng cơ chế NoSQL để truy vấn, nó được viết bởi ngôn ngữ C++. Chính vì được viết bởi C++ nên nó có khả năng tính toán với tốc độ cao chứ không giống như các hệ quản trị CSDL hiện nay.
Nếu như bạn biết sử dụng JSON thì trong MongoDB cũng có cấu trúc lưu trữ tương tự, chính vì thế nó có hiệu suất cao, tương tác nhanh và khả năng mở rộng tốt, nó hoạt động trên khái niệm collection  và document. Tới đây thì có lẽ bạn sẽ thắc mắc collection là gì? và document là gì? phải  không nào? Nếu vậy thì ta sẽ tìm hiểu các phần tiếp theo nhé.

Database là gì?

Database là một Ô chứa dữ liệu ở mức vật lý (physical), mỗi database sẽ có nhiều collection và được thiết lập lưu trữ ở một nơi trong máy chủ máy tính. Một máy chủ MongoDB thường có thể tạo nhiều cơ sở dữ liệu.

Collection là gì?

Collection trong MongoDB là nhóm các tài liệu (document), nó tương đương với một bảng (table) trong CSDL thông thường nên mỗi collection sẽ thuộc về một database duy nhất. Tuy nhiên nó có một sực khác biệt đó là nó không có ràng buộc Relationship như các hệ quản trị CSDL khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị mysql là các field cố định.

Document là gì?

Document trong MongoDB có cấu trúc tương tự như kiểu dữ liệu JSON, nghĩa là sẽ có các cặp (key => giá trị) nên nó có tính năng động rất lớn. Document ta có thể hiểu nó giống như các record dữ liệu trong MYSQL, tuy nhiên nó có sự khác biệt là các cặp (key => value) có thể không giống nhau ở mỗi document. 

2. Tạo file packpage.json bằng lệnh npm init.

Tất cả mã nguồn chúng ta sẽ ưu trong ổ đĩa C:\User\"username"\Nodejs nên bạn hãy tạo một folder Nodejs nằm trong ổ đĩa C:\User\"username"\ nhé. Như vậy kể từ bài này trước khi đọc tut thì bạn mở NodeJS Command Prompt lên và cd đến đúng thư mục này bằng cách sau.

Đổi vào thư mục Nodejs trong C:\User\"username"\
cd Nodejs
Tiếp theo ta sẽ tạo file package.json, đây là file lưu trữ thông tin cấu hình cũng như các gói packages đang sử dụng trong Project.

Để tạo file package.json thì bạn mở NodeJS Command Prompt lên và nhập vào lệnh npm init, sau đó nhập dữ liệu tương với các dòng thông báo rồi nhấn Enter. Trường hợp bạn muốn để tên mặc định thì chỉ cần nhấn Enter là được.

Và đây chính là cấu trúc của file package.json.
{ "name": "nodejs", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Ngo Van Tuan", "license": "ISC", "devDependencies": {}, "description": "" }
Trong đó:
  1. name: Tên của Project
  2. version: Version của Project
  3. description: Mô tả cho Project
  4. main: File chạy chính (chạy đầu tiên) của Project
  5. scripts: Danh sách các khai báo cấu hình bổ sung cho npm. Như trong chuỗi trên thì giá trị của test chính là câu thông báo và dừng chương trình khi bị lỗi.
  6. author: Tên tác giả của Project
  7. license: License của Project, giá trị mặc định là ISC.
Vẫn còn rất nhiều thuộc tính mà mình không liệt kê ở trên vì trong series này chúng ta học step by step, nghĩa là không đưa những cái chưa cần tìm hiểu tới. Nếu bạn nào muốn tìm hiểu sâu hơn về file package.json thì mình xin hẹn ở một bài khác. 

2. Thêm Package cho NodeJS bằng lệnh npm install.

Để thêm packpage cho Project NodeJS thì bạn sử dụng cú pháp sau trong cửa sổ NodeJS Prompt.
npm install package-name@version --save
Ở bài này, mình sẽ dùng 3 module đó là:  express, body-parser, mongodb.
Bạn gõ lệnh sau:
npm install express --save
Bạn chờ nó download xong bạn sẽ thấy trong Project xuất hiện một folder chứa package vừa download về. Làm tương tự với body-parser và mongodb.



Bây giờ bạn mở file package.json lên thì chuỗi JSON sẽ bị thay đổi như sau:

{ "name": "nodejs", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Ngo Van Tuan", "license": "ISC", "dependencies": { "body-parser": "^1.18.2", "express": "^4.16.2", "mongodb": "^2.2.33" }, "devDependencies": {}, "description": "" }
Nghĩa là nó bổ sung thêm thuộc tính dependenciesvà đây chính là thuộc tính lưu trữ các package đang sử dụng trong Project. 

3. Kết luận.

Như vậy là mình đã giới thiệu xong nơi lưu trữ cho Project của chúng ta. Kể từ bài viết tiếp theo mỗi lúc mình nói gõ lệnh thì các bạn nhớ cd đến thư mục C:\User\"username"\Nodejs nhé. Phần 2 sẽ là cấu trúc file index.js để connect với database.

Blogger (Blogspot) được hiểu là một hệ thống phát hành weblog, được thành lập bởi Pyra Labs vào tháng 8/1999 và sau đó được mua lại bởi Google vào tháng 2/2003, Vào tháng 12/2006, Blogger trở thành chính thức sau một thời gian ngắn thử nghiệm.

8 Bình Luận