Trong lĩnh vực phát triển web, khả năng quản lý và xử lý dữ liệu hiệu quả là vô cùng quan trọng. NodeJS Express, một framework nổi bật để xây dựng các ứng dụng NodeJS, cung cấp một cách tiếp cận mạnh mẽ và hợp lý để xây dựng các API web. Một khía cạnh quan trọng của việc thao tác dữ liệu nằm ở việc sử dụng các phương thức HTTP, mỗi phương thức quy định cách tương tác với các tài nguyên. Phương thức DELETE đóng vai trò thiết yếu trong bối cảnh này, cho phép các nhà phát triển loại bỏ các tài nguyên cụ thể khỏi máy chủ.
Bài viết này khám phá việc triển khai thực tiễn các yêu cầu DELETE trong các ứng dụng NodeJS Express. Bằng cách làm theo một cách tiếp cận từng bước với các ví dụ mã minh họa, bạn sẽ có được sự hiểu biết toàn diện về cách tận dụng các yêu cầu DELETE để quản lý dữ liệu hiệu quả trong các ứng dụng NodeJS Express của mình.
Hãy cùng xem qua các framework chính cần hiểu trước khi đi sâu vào việc thực hiện các yêu cầu DELETE trong NodeJS Express.
NodeJS là gì?
NodeJS (hoặc Node.js) là một môi trường chạy mã nguồn mở, đa nền tảng được xây dựng trên động cơ JavaScript V8 của Chrome. Nó cho phép các nhà phát triển sử dụng JavaScript để viết mã kịch bản phía máy chủ và tạo các ứng dụng mạng có thể mở rộng.

Các tính năng chính của NodeJS
JavaScript ở khắp mọi nơi
Đây là một yếu tố thay đổi cuộc chơi đối với các nhà phát triển. NodeJS cho phép bạn sử dụng JavaScript cho cả phát triển front-end và back-end. Vì JavaScript là một ngôn ngữ được sử dụng rộng rãi và phổ biến, điều này loại bỏ nhu cầu học và quản lý các ngôn ngữ riêng biệt cho các phần khác nhau của ứng dụng của bạn. Nó có thể nâng cao đáng kể năng suất của nhà phát triển và giảm độ phức tạp của phát triển ứng dụng web.
Kiến trúc dựa trên sự kiện
Các máy chủ web truyền thống thường dựa vào các luồng để xử lý nhiều yêu cầu đồng thời. Cách tiếp cận này có thể tốn tài nguyên cho các ứng dụng có lượng kết nối đồng thời cao. Tuy nhiên, NodeJS sử dụng một vòng lặp sự kiện để xử lý các yêu cầu. Kiến trúc dựa trên sự kiện này khiến NodeJS trở nên lý tưởng cho các ứng dụng thời gian thực, các ứng dụng trò chuyện và bất kỳ kịch bản nào mà bạn cần xử lý nhiều kết nối đồng thời một cách hiệu quả.
I/O không chặn
NodeJS sử dụng một mô hình I/O không chặn. Điều này có nghĩa là nó không chờ các thao tác chậm (như đọc từ cơ sở dữ liệu) hoàn thành trước khi xử lý các yêu cầu khác. Thay vào đó, nó tiếp tục chuyển sang yêu cầu tiếp theo trong khi thao tác chậm hoàn thành trong nền. Điều này giữ cho máy chủ phản hồi và tránh các tình huống mà một yêu cầu chậm có thể làm đình trệ toàn bộ máy chủ.
Hệ sinh thái phong phú và NPM (Node Package Manager)
Cộng đồng NodeJS rất rộng lớn và năng động. Điều này mang lại một hệ sinh thái phong phú về các công cụ và thư viện có sẵn thông qua npm, Trình quản lý gói Node. NPM cung cấp một bộ sưu tập lớn các mô-đun có sẵn, tái sử dụng cho nhiều chức năng khác nhau. Điều này tiết kiệm cho các nhà phát triển rất nhiều thời gian và nỗ lực bằng cách cung cấp các thành phần mã đã được kiểm tra và bảo trì tốt mà họ có thể tích hợp vào ứng dụng của họ.
Tính mở rộng
Các ứng dụng NodeJS được biết đến với tính mở rộng theo chiều ngang. Điều này có nghĩa là bạn có thể dễ dàng thêm nhiều máy chủ công nhân để xử lý lưu lượng truy cập tăng lên. Khi ứng dụng của bạn phát triển về số lượng người dùng và độ phức tạp, bạn có thể mở rộng ứng dụng NodeJS của mình một cách liền mạch bằng cách thêm nhiều máy chủ, giúp nó trở thành lựa chọn phù hợp để xây dựng các ứng dụng web lớn và phức tạp.
Express là gì?
ExpressJS, thường được gọi đơn giản là Express, nổi bật như một framework ứng dụng web quan trọng được xây dựng trên nền tảng của NodeJS. Nó hoạt động như một lớp trừu tượng mạnh mẽ, cung cấp một cấp độ phát triển cao hơn so với khả năng thô của NodeJS. Lớp trừu tượng này dẫn đến một sự giảm đáng kể trong mã boilerplate, mã lặp đi lặp lại và dự đoán mà các nhà phát triển thường cần viết khi xây dựng các ứng dụng web từ đầu. Bằng cách làm đơn giản hóa quy trình này, ExpressJS tăng tốc quá trình phát triển cho các ứng dụng web và API (Giao diện lập trình ứng dụng).
Các tính năng chính của Express
Phát triển có cấu trúc
ExpressJS yêu cầu một cấu trúc rõ ràng cho mã ứng dụng web của bạn. Cấu trúc này thúc đẩy sự tổ chức, khả năng bảo trì và tuân thủ các quy tắc tốt nhất, cuối cùng dẫn đến các ứng dụng mạnh mẽ và có thể mở rộng hơn.
Lập định tuyến
Chức năng cốt lõi của ExpressJS là hệ thống lập định tuyến của nó. Lập định tuyến cho phép các nhà phát triển ánh xạ URL tới các chức năng cụ thể trong ứng dụng của họ. Việc ánh xạ này thiết lập một mối quan hệ rõ ràng giữa các yêu cầu đến và các hành động tương ứng mà ứng dụng nên thực hiện, làm cho mã dễ đọc và dễ hiểu hơn.
Middleware
Middleware đóng vai trò như một điểm mở rộng trong vòng đời yêu cầu-đáp ứng của ExpressJS. Những ứng dụng nhỏ này có thể chặn các yêu cầu và phản hồi, cho phép các nhà phát triển thực hiện các tác vụ phổ biến như ghi log, xác thực, hoặc phục vụ tệp tĩnh trước khi yêu cầu đến đích cuối cùng của nó. Cách tiếp cận modular này thúc đẩy khả năng tái sử dụng mã và đơn giản hóa các chức năng phức tạp.
Các engine mẫu
ExpressJS tích hợp liền mạch với nhiều engine mẫu khác nhau như EJS, Pug hoặc Handlebars. Những engine này cho phép các nhà phát triển tạo ra các trang HTML động bằng cách kết hợp HTML với nội dung do phía máy chủ tạo ra. Việc tách biệt các vấn đề này cải thiện tổ chức và khả năng bảo trì của mã nguồn của bạn.
Cộng đồng và hệ sinh thái
ExpressJS được hưởng lợi từ một cộng đồng phát triển lớn và năng động. Điều này mang lại một lượng lớn middleware, thư viện và tài nguyên để dễ dàng sử dụng. Các nhà phát triển có thể tận dụng những tài nguyên này để tiết kiệm thời gian và công sức khi xây dựng ứng dụng web, thúc đẩy sự đổi mới và tăng tốc chu trình phát triển.
Cách thực hiện yêu cầu DELETE trong NodeJS Express?
Trước khi thực hiện các yêu cầu DELETE, bạn sẽ phải thiết lập hệ thống của mình.
Yêu cầu thiết lập hệ thống
Đầu tiên, bạn sẽ cần NodeJS và NPM được cài đặt trên hệ thống của mình. Tiếp theo, hãy tạo một thư mục dự án:
mkdir nodejs-delete-request
Tiếp theo, điều hướng tới thư mục dự án:
cd nodejs-delete-request
Tiếp theo, khởi tạo một dự án NodeJS:
npm init -y
Cuối cùng, cài đặt Express bằng cách chạy dòng mã này trong Terminal:
npm install express
Xây dựng một tuyến DELETE
Bắt đầu bằng cách tạo một tệp có tên server.js
trong thư mục dự án của bạn. Một ví dụ mã có thể thấy bên dưới.
const express = require('express');
const app = express();
const port = 3000;
// Kho dữ liệu trong bộ nhớ (thay thế bằng cơ sở dữ liệu cho các ứng dụng thực tế)
let data = [
{ id: 1, name: "Mặt hàng 1" },
{ id: 2, name: "Mặt hàng 2" },
{ id: 3, name: "Mặt hàng 3" },
];
// Tuyến DELETE để xóa dữ liệu theo ID
app.delete('/api/data/:id', (req, res) => {
const id = parseInt(req.params.id); // Phân tích ID từ tham số URL
const index = data.findIndex(item => item.id === id);
// Kiểm tra xem dữ liệu có tồn tại cho ID không
if (index === -1) {
return res.status(404).send("Dữ liệu không tìm thấy");
}
// Xóa dữ liệu khỏi mảng bằng cách sử dụng splice
data.splice(index, 1);
res.json({ message: "Dữ liệu đã được xóa thành công" });
});
app.listen(port, () => {
console.log(`Máy chủ đang lắng nghe trên cổng ${port}`);
});
Giải thích mã:
- Chúng tôi nhập Express và tạo một instance ứng dụng Express.
- Một mảng dữ liệu mẫu đóng vai trò là kho chứa (một cơ sở dữ liệu sẽ được sử dụng trong sản xuất).
- Tuyến DELETE (
/api/data/:id
) bắt ID từ URL. - Chúng tôi phân tích ID thành một số nguyên để so sánh.
findIndex
được sử dụng để xác định đối tượng dữ liệu với ID phù hợp.- Nếu dữ liệu không được tìm thấy, một phản hồi lỗi 404 sẽ được gửi.
- Nếu được tìm thấy, phương thức
splice
sẽ xóa đối tượng dữ liệu khỏi mảng tại chỉ mục được chỉ định. - Cuối cùng, một thông điệp thành công được gửi lại trong phản hồi.
Sử dụng Apidog để kiểm tra yêu cầu DELETE của bạn
Apidog là một nền tảng phát triển API toàn diện cung cấp cho người dùng đầy đủ công cụ cho toàn bộ vòng đời của API. Với Apidog, bạn có thể thiết kế, gỡ lỗi, phát mock, và tài liệu hóa các API, tất cả trong một ứng dụng!

Kiểm tra các API riêng biệt bằng Apidog
Để đảm bảo rằng các yêu cầu DELETE được thực hiện chính xác, bạn có thể kiểm tra từng yêu cầu một cách riêng biệt.

Để kiểm tra một điểm cuối, chỉ cần nhập URL của nó. Bao gồm bất kỳ tham số cần thiết nào cụ thể cho điểm cuối đó. Nếu bạn cảm thấy không chắc chắn về các URL phức tạp với nhiều tham số? Một tài nguyên riêng biệt (không được bao gồm ở đây) cung cấp hướng dẫn về cách nhắm mục tiêu dữ liệu cụ thể trong các tập dữ liệu lớn hơn.
Nếu bạn không chắc chắn về việc sử dụng nhiều tham số trong một URL, bài viết này có thể hướng dẫn bạn cách nhắm vào đúng tài nguyên trong các tập dữ liệu lớn hơn!


Nhấn nút Gửi
sẽ kích hoạt yêu cầu và hiển thị phản hồi của API một cách chi tiết. Mã trạng thái nhanh chóng chỉ ra thành công hoặc thất bại. Bạn cũng có thể đi sâu vào phản hồi thô, tiết lộ định dạng dữ liệu chính xác mà mã khách hàng của bạn cần để xử lý thông tin từ các máy chủ phía sau.
Không biết JavaScript? Để Apidog giúp bạn
Apidog có tính năng tạo mã hỗ trợ bạn, cho dù bạn có biết JavaScript hay không!

Đầu tiên, hãy tìm nút </>
nằm ở góc trên bên phải của màn hình. Nếu bạn đang gặp khó khăn trong việc tìm nút này, bạn có thể tham khảo hình ảnh ở trên.

Tiếp tục bằng cách chọn ngôn ngữ lập trình phía khách hàng mà bạn cần. Bạn có thể chọn thư viện JavaScript mà bạn cảm thấy thoải mái hơn.
Tất cả những gì bạn cần làm là sao chép và dán mã vào IDE của bạn, và tiếp tục chỉnh sửa để đảm bảo nó phù hợp với ứng dụng NodeJS của bạn! Tuy nhiên, nếu bạn muốn sử dụng Unirest như hình ảnh trên, bạn có thể tham khảo bài viết tại đây:

Kết luận
NodeJS Express trao quyền cho các nhà phát triển xây dựng các API mạnh mẽ xử lý việc xóa tài nguyên một cách liền mạch thông qua các yêu cầu DELETE. Hướng dẫn này đã khám phá các khái niệm cốt lõi liên quan đến việc triển khai các yêu cầu DELETE trong các ứng dụng NodeJS Express. Chúng tôi đã hướng dẫn bạn thiết lập một dự án, tạo một tuyến DELETE, và mô phỏng một yêu cầu sử dụng Postman. Hãy nhớ, điều này phục vụ như một nền tảng.
Các ứng dụng thực tế nên kết hợp các thực tiễn tốt nhất như xử lý lỗi, xác thực dữ liệu, tích hợp cơ sở dữ liệu, và middleware để đảm bảo một phương pháp phát triển toàn diện và an toàn. Bằng cách thành thạo các yêu cầu DELETE trong NodeJS Express, bạn có thể quản lý và loại bỏ dữ liệu một cách hiệu quả trong các ứng dụng web và API của mình, giữ cho kho dữ liệu của bạn hiệu quả và có tổ chức.