Nút. js là một môi trường thời gian chạy JavaScript nguồn mở cho phép các nhà phát triển back-end sử dụng JavaScript để tạo các ứng dụng và API phía máy chủ
nút là gì. js được sử dụng để làm gì?
Sử dụng nút. js cho phép giao diện người dùng của bạn [i. e. Phản ứng, Vue. js, thậm chí cả jQuery] sử dụng cùng ngôn ngữ lập trình, JavaScript, với tư cách là nhà phát triển phụ trợ của bạn. Điều này cho phép phát triển đa chức năng và nhanh nhẹn hơn. Nút. js đang được sử dụng rộng rãi và liên tục, và tôi thực sự khuyên dùng nó cho sự phát triển mới
Cơ sở dữ liệu tốt nhất cho nút là gì. js?
Hãy xem nhanh một số điều bạn nên xem xét khi chọn cơ sở dữ liệu
SQL [e. g. , MySQL, PostgreSQL] so với NoSQL
Đối với hầu hết các ứng dụng, một số loại lưu trữ dữ liệu liên tục được yêu cầu. Theo truyền thống, điều này sẽ được xử lý bởi một cơ sở dữ liệu quan hệ như MySQL, Postgres, SQLite/SQLite3, MSSQL Server, v.v. Cơ sở dữ liệu quan hệ là lựa chọn phù hợp cho nhiều ứng dụng tùy thuộc vào trường hợp sử dụng, nhưng có một số vấn đề bạn có thể muốn xem xét
Thiết kế trả trước quan trọng cần thiết
Để tạo cơ sở dữ liệu trong MySQL, cần có mô hình dữ liệu hoặc lược đồ. Tạo và thiết kế mô hình này có thể là một quá trình kéo dài nhiều tuần bao gồm gặp gỡ các bên liên quan, quy trình thiết kế và nhiều lần sửa đổi. Sau khi được tạo và điền dữ liệu, mô hình của cơ sở dữ liệu SQL có thể khó sửa đổi do các vấn đề phụ thuộc vào dữ liệu, do đó, thời gian thiết kế trước thường được yêu cầu
Hiệu suất và nhân rộng
Cơ sở dữ liệu SQL ban đầu không được thiết kế để mở rộng quy mô mà thay vào đó để có các thuộc tính ACID. Như vậy, trong khi có thể dễ dàng mở rộng cơ sở dữ liệu SQL theo chiều dọc [e. g. , đặt nó trên một máy chủ lớn hơn], mở rộng nó theo chiều ngang [nhiều máy chủ] khá khó khăn và phức tạp ngay cả ngày nay
Lợi ích của NoSQL
Ngược lại, cơ sở dữ liệu NoSQL rất lý tưởng cho các tình huống mà bạn cần hiệu suất cao, khả năng mở rộng theo chiều ngang và đang xử lý một lượng lớn dữ liệu phi cấu trúc. Cơ sở dữ liệu NoSQL lưu trữ dữ liệu ở các định dạng linh hoạt—chẳng hạn như biểu đồ, khóa/giá trị và tài liệu—có thể dễ dàng lưu trữ nhiều loại dữ liệu. Và, vì dữ liệu không được liên kết theo quan hệ, cơ sở dữ liệu NoQuery có thể nhanh hơn đáng kể và dễ dàng hơn để thiết kế, cập nhật và mở rộng quy mô
Có lẽ cơ sở dữ liệu NoSQL được sử dụng phổ biến nhất là MongoDB, một cơ sở dữ liệu tài liệu mã nguồn mở. Trên thực tế, sự kết hợp giữa MongoDB cho cơ sở dữ liệu, Express framework cho mặt sau, React cho mặt trước và Node. js là máy chủ web phổ biến đến mức nó được gọi là ngăn xếp MERN cho ứng dụng web. Với mục đích của bài viết này, tôi sẽ sử dụng MongoDB làm ví dụ về cơ sở dữ liệu NoSQL
Cách tạo cơ sở dữ liệu MongoDB bằng nút. js
Khi tạo cơ sở dữ liệu, bạn có thể chọn thiết lập cục bộ hoặc trên đám mây. Ví dụ: bạn có thể quay vòng cài đặt MongoDB trên localhost theo cách thủ công bằng cách tải xuống và cài đặt MongoDB. Điều đó nói rằng, cài đặt thủ công đi kèm với chi phí bảo trì và bảo trì liên tục. Là một nhà phát triển ứng dụng, tôi muốn tránh càng nhiều công việc thủ công càng tốt, vì vậy tôi có xu hướng ngại cài đặt thủ công
Đối với các dịch vụ đám mây, có MongoDB Atlas, dịch vụ cơ sở dữ liệu dưới dạng dịch vụ từ MongoDB. Nó không phụ thuộc vào nền tảng, cho phép bạn tạo các cụm cơ sở dữ liệu trên AWS, Azure và Google Cloud, đồng thời mở rộng quy mô đơn giản bằng cách nhấp vào một nút. Họ cũng giúp bạn dễ dàng bắt đầu với bậc M0 miễn phí. Tổng thời gian từ khi đăng ký đến khi có cơ sở dữ liệu được tạo là chưa đầy năm phút đối với tôi
Tìm kiếm Trình điều khiển được hỗ trợ chính thức
Như với bất kỳ sự tích hợp nào giữa hai công nghệ, cuộc sống trở nên dễ dàng hơn khi có trình điều khiển được hỗ trợ chính thức cho giao diện. [Để biết ví dụ về trình điều khiển cơ sở dữ liệu không được hỗ trợ chính thức, hãy xem Node. js Trình điều khiển cho Máy chủ SQL. ] Hỗ trợ chính thức dẫn đến tài liệu tốt hơn, chức năng mạnh mẽ hơn và tùy chọn hỗ trợ trực tiếp từ nhà sản xuất
Trong trường hợp này, Trình điều khiển nút MongoDB chính thức đến trực tiếp từ MongoDB và rất dễ sử dụng. Cài đặt nó trong Nút của bạn. js đơn giản như chạy lệnh sau
npm install mongodb --save
Trình điều khiển giúp kết nối với cơ sở dữ liệu, xác thực, thao tác CRUD và thậm chí ghi nhật ký/giám sát của bạn đơn giản như chạy một lệnh. Trình điều khiển cũng hỗ trợ các tính năng hứa hẹn/không đồng bộ JavaScript. Điều này giúp dễ dàng tương tác với dữ liệu của bạn từ Nút của bạn. ứng dụng js
Để biết thêm thông tin, hãy xem cách kết nối với cơ sở dữ liệu MongoDB hoặc tham gia lớp học trực tuyến miễn phí của họ, MongoDB dành cho nhà phát triển JavaScript
Làm cách nào để tôi bắt đầu với MongoDB?
Tự hỏi bắt đầu từ đâu?
Cài đặt nút. js và NPM
Trước tiên, bạn sẽ cần cài đặt Node. js. Tôi khuyên dùng phiên bản hỗ trợ dài hạn. Điều này cũng sẽ cài đặt NPM. NPM là Trình quản lý gói Node và nó đi kèm với Node. js để cho phép dễ dàng cài đặt nhiều gói của bên thứ ba
Thêm nút MongoDB. trình điều khiển js
Từ dòng lệnh/thiết bị đầu cuối trong thư mục dự án của bạn, hãy chạy lệnh sau
npm install mongodb --save
Điều này sẽ tự động tải xuống phiên bản trình điều khiển mới nhất và lưu nó vào gói của bạn. cấu hình json
Cách tạo và kết nối với cơ sở dữ liệu bằng MongoDB Atlas
1. Tạo tài khoản để đăng ký miễn phí MongoDB Atlas
2. Tiếp theo, tạo cụm cơ sở dữ liệu trên nền tảng bạn chọn
3. Tải dữ liệu mẫu trong “Bộ sưu tập. ”
4. Thiết lập kết nối và tạo người dùng cơ sở dữ liệu
Theo mặc định, người dùng có cả quyền đọc và ghi đối với bất kỳ cơ sở dữ liệu nào trong cụm. Đối với mục đích thử nghiệm, điều này là tốt;
Đảm bảo lưu mật khẩu
5. Tiếp theo, chọn tùy chọn “Kết nối ứng dụng của bạn”
6. Sao chép mã kết nối được cung cấp trong mẫu và điền mật khẩu của bạn và “sample_airbnb” cho tên cơ sở dữ liệu. Cú pháp như sau
async function main[] {
const MongoClient = require['mongodb'].MongoClient;
const uri =
'mongodb+srv://dbUser:@cluster0.dcu5m.mongodb.net/sample_airbnb?retryWrites=true&w=majority';
const client = new MongoClient[uri, { useNewUrlParser: true }];
client.connect[[err] => {
const collection = client.db['test'].collection['devices'];
// perform actions on the collection object
client.close[];
}];
}
main[].catch[console.error];
7. Giả sử bạn đã lưu cái này dưới dạng “mongo. js” trên hệ thống tệp của bạn, hãy dùng thử bằng cách chạy lệnh sau
node mongo.js
Nếu mọi thứ hoạt động, bạn sẽ không thấy bất kỳ đầu ra nào ngoài một số thông báo thông tin. Hãy tiếp tục và tạo một số đầu ra
Cách hiển thị dữ liệu từ cơ sở dữ liệu MongoDB Atlas trong nút. js
Bây giờ chúng tôi đã kết nối với cơ sở dữ liệu Atlas của mình, hãy thực hiện một chút truy vấn. Tôi đã tạo một hàm findListings
đơn giản để truy vấn danh sách từ cơ sở dữ liệu mẫu. Mã cho chức năng như sau
async function findListings[client, resultsLimit] {
const cursor = client
.db['sample_airbnb']
.collection['listingsAndReviews']
.find[]
.limit[resultsLimit];
const results = await cursor.toArray[];
if [results.length > 0] {
console.log[`Found ${results.length} listing[s]:`];
results.forEach[[result, i] => {
date = new Date[result.last_review].toDateString[];
console.log[];
console.log[`${i + 1}. name: ${result.name}`];
console.log[` _id: ${result._id}`];
console.log[` bedrooms: ${result.bedrooms}`];
console.log[` bathrooms: ${result.bathrooms}`];
console.log[
` most recent review date: ${new Date[
result.last_review
].toDateString[]}`
];
}];
}
}
Hãy tiếp tục và sao chép nó vào cuối mongo của bạn. tập tin js. Tiếp theo, hãy cập nhật mã kết nối của chúng tôi để sử dụng mẫu không đồng bộ và xóa lệnh gọi lại. Sau đó, hãy gọi chức năng truy vấn của chúng tôi như sau
async function main[] {
const MongoClient = require['mongodb'].MongoClient;
const uri =
'mongodb+srv://dbUser:@cluster0.dcu5m.mongodb.net/sample_airbnb?retryWrites=true&w=majority';
const client = new MongoClient[uri, { useNewUrlParser: true }];
// Connect to the client and query
await client.connect[];
findListings[client, 5];
client.close[];
}
Mã đầy đủ sẽ trông như sau
async function main[] {
const MongoClient = require['mongodb'].MongoClient;
const uri =
'mongodb+srv://dbUser:@cluster0.dcu5m.mongodb.net/sample_airbnb?retryWrites=true&w=majority';
const client = new MongoClient[uri, { useNewUrlParser: true }];
// Connect to the client and query
await client.connect[];
findListings[client, 5];
client.close[];
}
main[].catch[console.error];
async function findListings[client, resultsLimit] {
const cursor = client
.db['sample_airbnb']
.collection['listingsAndReviews']
.find[]
.limit[resultsLimit];
const results = await cursor.toArray[];
if [results.length > 0] {
console.log[`Found ${results.length} listing[s]:`];
results.forEach[[result, i] => {
date = new Date[result.last_review].toDateString[];
console.log[];
console.log[`${i + 1}. name: ${result.name}`];
console.log[` _id: ${result._id}`];
console.log[` bedrooms: ${result.bedrooms}`];
console.log[` bathrooms: ${result.bathrooms}`];
console.log[
` most recent review date: ${new Date[
result.last_review
].toDateString[]}`
];
}];
}
}
Chạy nút mongo. js và bạn sẽ thấy năm danh sách trong bảng điều khiển của mình
Thành công. Bạn đã kết nối, truy vấn và hiển thị dữ liệu từ cơ sở dữ liệu MongoDB của mình. Để biết thêm chi tiết từng bước và nhiều ví dụ mã hơn, hãy xem bài đăng này của Lauren Schaefer
Bản tóm tắt
Trong bài viết này, tôi đã trải qua quá trình suy nghĩ của mình khi chọn cơ sở dữ liệu cho một Node. js, thiết lập cục bộ so với đám mây, lợi ích của việc có trình điều khiển được hỗ trợ chính thức và các bước đầu tiên để thiết lập MongoDB. Mặc dù thế giới cơ sở dữ liệu đôi khi có thể phức tạp và đáng sợ, nhưng tôi hy vọng bài viết này giúp bạn đơn giản hơn một chút