Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Mọi thứ bạn cần biết về Yêu cầu PUT trong NodeJS Express

Bạn đang suy nghĩ về việc xây dựng ứng dụng web hoặc API? NodeJS Express là một framework nổi tiếng giúp việc phát triển dễ dàng và đồng nhất hơn. Bài viết này sẽ hướng dẫn bạn cách xử lý các yêu cầu POST bằng NodeJS Express!

Minh Triết

Minh Triết

Updated on tháng 11 29, 2024

Môi trường runtime NodeJS đã trở thành một lựa chọn phổ biến để xây dựng các ứng dụng web hiện đại nhờ vào kiến trúc hướng sự kiện hiệu quả và nền tảng JavaScript. Trong hệ sinh thái này, Express nổi bật như một framework web nổi bật, cung cấp một phương pháp phát triển mạnh mẽ và hợp lý.

💡
Việc xử lý JavaScript là điều不可避免 khi làm việc với phát triển ứng dụng và web. May mắn thay, giờ đây đã có một nền tảng phát triển API với các tính năng tích hợp có thể tiết kiệm rất nhiều thời gian và công sức cho các lập trình viên!

Giới thiệu Apidog, một công cụ API tinh vi cung cấp cho các lập trình viên một công cụ tạo mã để phát triển ứng dụng và API hiệu quả hơn.

Để tìm hiểu thêm về những gì Apidog có thể cung cấp, hãy nhấp vào nút bên dưới. 
button

Một trong những viên đá tảng của các API web hiệu quả là việc sử dụng các phương thức HTTP quy định cách tương tác với các tài nguyên. Phương thức PUT đóng một vai trò quan trọng trong bối cảnh này, cho phép các lập trình viên thực hiện các cập nhật có mục tiêu trên các tài nguyên hiện có.

Trước khi đi sâu vào việc thực hiện các yêu cầu PUT với NodeJS Express, chúng ta hãy hiểu rõ NodeJS và Express là gì.

NodeJS là gì?

NodeJS là một phần mềm mã nguồn mở phá vỡ khuôn mẫu bằng cách cho phép JavaScript chạy bên ngoài các trình duyệt web. Tính linh hoạt này mở rộng qua nhiều hệ điều hành khác nhau, khiến nó trở thành một công cụ đa năng cho các lập trình viên. Tài liệu này đi sâu vào những gì NodeJS cung cấp, khám phá các khả năng của nó và cách thức nó đã thay đổi cách tiếp cận phát triển phần mềm của chúng ta.

Các Tính Năng Chính Của NodeJS

Kiến Trúc Hướng Sự Kiện

Khác với các máy chủ web truyền thống, NodeJS không sử dụng luồng. Thay vào đó, nó dựa vào một vòng lặp sự kiện để xử lý nhiều yêu cầu một cách hiệu quả. Phương pháp hướng sự kiện này khiến NodeJS lý tưởng cho các ứng dụng xử lý một khối lượng kết nối đồng thời lớn, như ứng dụng chat hoặc phát trực tiếp dữ liệu theo thời gian thực.

JavaScript Mọi Nơi

NodeJS sử dụng V8 JavaScript engine, cùng cái mà hỗ trợ Google Chrome, để thực thi mã. Điều này cho phép các lập trình viên sử dụng JavaScript cho cả phát triển front-end và back-end, giảm thiểu nhu cầu học và quản lý nhiều ngôn ngữ.

I/O Không Chặn

NodeJS sử dụng mô hình I/O không chặn. Điều này có nghĩa là nó không chờ các hoạt động 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ó chuyển sang yêu cầu tiếp theo trong khi hoạt động chậm hoàn thành trong nền. Điều này giữ cho máy chủ luôn phản hồi và hiệu quả.

Hệ Sinh Thái Phong Phú và NPM

NodeJS có một cộng đồng lớn và năng động đóng góp cho một trình quản lý gói lớn được gọi là npm (Node Package Manager). NPM cung cấp một loạt các mô-đun đã được viết sẵn cho nhiều chức năng khác nhau, giúp tiết kiệm thời gian và công sức cho các lập trình viên bằng cách cung cấp các thành phần mã có thể tái sử dụng.

Khả Năng Mở Rộng

Các ứng dụng NodeJS có thể dễ dàng được mở rộng theo chiều ngang. Điều này có nghĩa là bạn có thể thêm nhiều máy chủ làm việc hơn để xử lý lưu lượng tăng lên, khiến NodeJS trở thành sự lựa chọn phù hợp để xây dựng các ứng dụng lớn và phức tạp.

Express là gì?

Express, hay còn gọi là ExpressJS, là một framework web phổ biến cho NodeJS giúp các lập trình viên xây dựng các ứng dụng web và API dễ dàng hơn. Nó hoạt động như một lớp trừu tượng, cung cấp một phương pháp tiếp cận thuận tiện và có cấu trúc hơn so với việc làm việc trực tiếp với các chức năng cốt lõi của NodeJS. Điều này dẫn đến việc giảm đáng kể mã lặp lại (mã boilerplate), cho phép các lập trình viên tập trung vào logic chính của ứng dụng của họ và tăng tốc quy trình phát triển.

Các Tính Năng Chính Của ExpressJS

Định Tuyến

ExpressJS vượt trội trong việc định nghĩa các tuyến đường, quét các URL tới các chức năng cụ thể xử lý các yêu cầu đến. Sự tổ chức này giúp mã ứng dụng của bạn dễ đọc và bảo trì hơn.

Middleware

Một điểm mạnh cốt lõi của ExpressJS là chức năng middleware của nó. Middleware hoạt động như các ứng dụng mini chặn các yêu cầu và phản hồi, cho phép bạn thực hiện các tác vụ thường gặp như ghi nhật ký, 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ác Engine Templating

ExpressJS tích hợp liền mạch với nhiều engine templating khác nhau như EJS, Pug, hoặc Handlebars. Những engine này cho phép bạn tạo các trang HTML động bằng cách kết hợp HTML với nội dung được tạo từ phía máy chủ.

Xử Lý Lỗi

ExpressJS cung cấp một phương pháp có cấu trúc để xử lý lỗi. Bạn có thể định nghĩa các trình xử lý lỗi tùy chỉnh để bắt và phản hồi lỗi một cách tinh tế, cải thiện trải nghiệm người dùng tổng thể của ứng dụng của bạn.

Cộng Đồng và Hệ Sinh Thái

ExpressJS hưởng lợi từ một cộng đồng lập trình viên lớn và năng động. Điều này dịch sang một số lượng lớn middleware, thư viện và tài nguyên có sẵn, tiết kiệm thời gian và công sức cho các lập trình viên khi xây dựng các ứng dụng web.

Cách Thực Hiện Các Yêu Cầu PUT Trong NodeJS Express?

Để đảm bảo bạn có thể thực hiện các yêu cầu PUT, trước tiên bạn sẽ phải đảm bảo rằng hệ thống của bạn đã cài đặt NodeJS và NPM.

Yêu Cầu Trước

Đầu tiên, tạo một thư mục dự án và khởi tạo một dự án NodeJS bên trong nó bằng NPM:

mkdir nodejs-put-request
cd nodejs-put-request
npm init -y

Tiếp theo, cài đặt framework ExpressJS như một phụ thuộc cho dự án của bạn:

npm install express

Bước 1 - Xây Dựng Một Tuyến Đường PUT

Trong thư mục dự án của bạn, tạo một tệp có tên server.js. Tệp này sẽ chứa logic ứng dụng ExpressJS. Đoạn mã dưới đây minh hoạ một tuyến đường PUT cơ bản:

const express = require('express');

const app = express();
const port = 3000;

// Kho lưu trữ dữ liệu trong bộ nhớ (thay thế bằng cơ sở dữ liệu trong môi trường sản xuất)
let data = {
  id: 1,
  name: "John Doe",
  age: 30
};

// Tuyến đường PUT để cập nhật dữ liệu dựa trên ID
app.put('/api/data/:id', (req, res) => {
  const id = req.params.id;
  const updatedData = req.body;

  // Xác minh dữ liệu tồn tại trước khi cập nhật
  if (data.id !== parseInt(id)) {
    return res.status(404).send("Dữ liệu không tìm thấy");
  }

  // Cập nhật các thuộc tính dữ liệu bằng cách sử dụng cú pháp spread object
  data = { ...data, ...updatedData };

  res.json(data);
});

app.listen(port, () => {
  console.log(`Máy chủ đang lắng nghe trên cổng ${port}`);
});

Giải Thích Mã

  1. Chúng ta nhập Express và tạo một thể hiện ứng dụng Express.
  2. Một đối tượng dữ liệu mẫu giữ vai trò là chỗ dựa (một cơ sở dữ liệu sẽ được sử dụng trong sản xuất).
  3. Tuyến đường PUT (/api/data/:id) thu thập một tham số ID từ URL.
  4. Sự tồn tại của dữ liệu được xác minh trước khi cố gắng cập nhật.
  5. Nếu dữ liệu được tìm thấy, dữ liệu cập nhật từ thân yêu cầu sẽ được hợp nhất với đối tượng dữ liệu hiện tại bằng cách sử dụng cú pháp spread object (...).
  6. Cuối cùng, dữ liệu đã cập nhật sẽ được gửi trở lại trong phản hồi dưới dạng JSON.

Bước 2 - Gửi Một Yêu Cầu PUT (Sử Dụng Apidog)

Để mô phỏng việc gửi một yêu cầu PUT, bạn có thể sử dụng một công cụ như Apidog.

apidog making a request
button

Những gì bạn cần làm là:

  1. Đặt phương thức HTTP là PUT.
  2. Định nghĩa URL là http://localhost:3000/api/data/1 (thay thế 1 bằng ID bạn muốn).
  3. Trong tab body, đặt content-type là JSON và cung cấp dữ liệu bạn muốn cập nhật (ví dụ, {"name": "Jane Doe"}).
  4. Gửi yêu cầu.

Phần dưới đây sẽ làm nổi bật thêm về những gì Apidog có thể cung cấp.

Những Lưu Ý Quan Trọng và Thực Hành Tốt Nhất

Ví dụ này phục vụ như một minh hoạ cơ bản cho việc thực hiện yêu cầu PUT với NodeJS Express. Hãy nhớ tích hợp các tính năng bổ sung vào các ứng dụng thực tế của bạn:

  • Xử Lý Lỗi: Triển khai các cơ chế xử lý lỗi hiệu quả để quản lý một cách tinh tế các vấn đề tiềm ẩn trong quá trình cập nhật.
  • Xác Thực: Xác thực dữ liệu đến để đảm bảo nó tuân theo sơ đồ và ràng buộc bạn đã định nghĩa.
  • Tích Hợp Cơ Sở Dữ Liệu: Đối với các ứng dụng sản xuất, tích hợp một giải pháp cơ sở dữ liệu như MongoDB hoặc PostgreSQL để lưu trữ dữ liệu bền vững.
  • Middleware: Khám phá các chức năng middleware trong ExpressJS để xử lý các tác vụ như xác thực, phân quyền và ghi nhật ký cho một ứng dụng an toàn và có cấu trúc hơn.

Apidog - Thực Hiện Một Yêu Cầu PUT

Như đã giới thiệu trước đó, bạn có thể thực hiện một yêu cầu PUT một cách nhanh chóng với Apidog, một công cụ phát triển API toàn diện có đầy đủ công cụ cho toàn bộ vòng đời API.

apidog new put request

Đầu tiên, nhấp vào nút New Request để tạo một yêu cầu mới cho yêu cầu PUT của NodeJS Express.

apidog new put request and endpoint

Tiếp theo, hãy đảm bảo thay đổi yêu cầu thành một yêu cầu PUT. Trong ô được làm nổi bật trên hình ảnh, chèn điểm cuối API mà bạn muốn truy cập.

Tiếp tục bằng cách bao gồm các chi tiết cần thiết cho yêu cầu PUT của bạn.

Tạo Mã JavaScript Cho Ứng Dụng Của Bạn Với Apidog

Vì NodeJS và Express được viết bằng ngôn ngữ lập trình JavaScript, bạn sẽ cần có sự am hiểu về ngôn ngữ này. May mắn thay, Apidog có tính năng tạo mã.

apidog generate client code

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

apidog generate javascript unirest code

Tiếp tục bằng cách chọn ngôn ngữ lập trình phía client mà bạn cần. Bạn có quyền chọn thư viện JavaScript nào mà bạn cảm thấy thoải mái nhất.

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ư trong hình ảnh trên, bạn có thể tham khảo bài viết ở đây:

button

Kết Luận

NodeJS Express giúp các lập trình viên xây dựng các API mạnh mẽ và linh hoạt có thể tích hợp liền mạch các yêu cầu PUT cho việc cập nhật tài nguyên có mục tiêu. 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 xử lý các yêu cầu PUT trong các ứng dụng NodeJS Express. Chúng ta đã cùng nhau thiết lập một dự án, tạo một tuyến đường PUT và mô phỏng một yêu cầu bằng cách sử dụng Postman.

Hãy nhớ rằng, đây là nền tảng. Các ứng dụng thực tế nên tích hợp các nguyên tắc 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 để có một phương pháp phát triển toàn diện và an toàn. Bằng cách làm chủ các yêu cầu PUT trong NodeJS Express, bạn có thể hiệu quả quản lý và cập nhật tài nguyên trong các ứng dụng web và API của mình.