Rate this post

Đối tượng Phản hồi (res) chỉ định phản hồi HTTP được gửi bởi một ứng dụng Express khi nó nhận được yêu cầu HTTP.

Các bài viết liên quan:

Express.js Response Object là gì ?

Express.js Response Object là một đối tượng trong framework Express.js, được sử dụng để xây dựng và gửi phản hồi từ máy chủ tới người dùng khi có yêu cầu HTTP được nhận.

Khi một yêu cầu HTTP được gửi đến máy chủ Express.js, đối tượng Response (res) sẽ được tạo và truyền vào hàm xử lý yêu cầu. Đối tượng này cung cấp các phương thức và thuộc tính để xây dựng và gửi phản hồi về cho người dùng.

Xem thêm Browser Object Model

Các phương thức phổ biến của đối tượng Response trong Express.js bao gồm:

  • res.send(): Gửi một phản hồi văn bản đơn giản.
  • res.json(): Gửi một phản hồi dưới dạng JSON.
  • res.render(): Gửi một phản hồi bằng cách sử dụng template engine để render nội dung HTML.
  • res.redirect(): Chuyển hướng yêu cầu tới một địa chỉ URL khác.
  • res.sendFile(): Gửi một tệp tin tĩnh từ máy chủ tới người dùng.

Ngoài ra, đối tượng Response cũng cung cấp các thuộc tính như res.status, res.headers, và res.locals để điều khiển trạng thái, tiêu đề, và các biến cục bộ trong quá trình xử lý phản hồi.

Với Express.js Response Object, bạn có thể tùy chỉnh và gửi các phản hồi phù hợp với yêu cầu từ người dùng, cho phép bạn tạo ra ứng dụng web linh hoạt và đáp ứng đúng nhu cầu của người dùng.

Response Object Properties

Hãy xem một số thuộc tính của đối tượng phản ứng.

IndexPropertiesDescription
1.res.appNó chứa một tham chiếu đến phiên bản của ứng dụng express đang sử dụng phần mềm trung gian.
2.res.headersSentĐây là thuộc tính Boolean cho biết liệu ứng dụng có gửi tiêu đề HTTP cho phản hồi hay không.
3.res.localsNó chỉ định một đối tượng có chứa các biến cục bộ phản hồi trong phạm vi yêu cầu

Xem thêm Giao thức Mạng trong TCP/IP

Các phương thức Response Object trong Express.js

Express.js cung cấp một loạt các phương thức trong Response Object để xây dựng và gửi phản hồi từ máy chủ tới người dùng. Dưới đây là một số phương thức quan trọng:

  1. res.send(): Gửi một phản hồi văn bản hoặc đối tượng dưới dạng phản hồi HTTP. Express.js sẽ tự động xác định kiểu dữ liệu và đặt các tiêu đề phù hợp.
  2. res.json(): Gửi một phản hồi dưới dạng JSON. Express.js sẽ thiết lập các tiêu đề phù hợp và chuyển đổi đối tượng thành chuỗi JSON.
  3. res.render(): Gửi một phản hồi HTML bằng cách sử dụng template engine đã cấu hình trước đó. Đây thường được sử dụng để hiển thị các trang HTML động.
  4. res.redirect(): Chuyển hướng yêu cầu tới một địa chỉ URL khác. Điều này thường được sử dụng để thực hiện chuyển hướng sau khi xử lý một yêu cầu.
  5. res.sendFile(): Gửi một tệp tin tĩnh từ máy chủ tới người dùng. Đây thường được sử dụng để gửi các tệp tin như hình ảnh, CSS, JavaScript và các tệp tin khác.
  6. res.status(): Thiết lập mã trạng thái HTTP của phản hồi. Mặc định là 200 (OK), nhưng bạn có thể sử dụng phương thức này để đặt mã trạng thái phù hợp với yêu cầu.
  7. res.header(): Thiết lập hoặc truy xuất các tiêu đề HTTP của phản hồi. Bạn có thể sử dụng phương thức này để thiết lập các tiêu đề như Content-Type, Cache-Control,…

Đây chỉ là một số phương thức phổ biến trong Response Object của Express.js. Ngoài ra, còn nhiều phương thức và thuộc tính khác để tùy chỉnh và điều khiển phản hồi từ máy chủ tới người dùng.

Xem thêm Hướng dẫn Express.js

Những lưu ý khi sử dụng Response Object trong Express.js

Khi sử dụng đối tượng Response trong Express.js, dưới đây là một số lưu ý quan trọng bạn nên xem xét:

  1. Chỉ gửi một phản hồi duy nhất: Đối tượng Response chỉ được gửi một phản hồi duy nhất trong mỗi yêu cầu. Nếu bạn gửi nhiều phản hồi, Express.js sẽ hiển thị lỗi “Cannot set headers after they are sent to the client”.
  2. Đặt phản hồi cuối cùng: Trong một hàm xử lý yêu cầu, hãy chắc chắn rằng bạn đã đặt phản hồi cuối cùng, ví dụ như res.send(), res.json(), hoặc res.end(). Điều này đảm bảo rằng Express.js không tiếp tục thực hiện các phương thức khác sau khi phản hồi đã được gửi.
  3. Xử lý lỗi: Sử dụng phương thức res.status() để đặt mã trạng thái HTTP phù hợp cho phản hồi lỗi. Điều này giúp máy khách và các công cụ phân tích web nhận biết rằng yêu cầu đã thất bại.
  4. Thiết lập tiêu đề phù hợp: Sử dụng phương thức res.setHeader() hoặc các phương thức như res.contentType() để thiết lập các tiêu đề HTTP phù hợp. Điều này bao gồm tiêu đề Content-Type, Cache-Control, Content-Disposition, và các tiêu đề khác cần thiết cho phản hồi.
  5. Xử lý đường dẫn tệp tin: Khi sử dụng res.sendFile(), hãy chắc chắn xác định đúng đường dẫn tuyệt đối của tệp tin. Điều này giúp tránh truy cập không ủy quyền vào các tệp tin không mong muốn trên máy chủ.
  6. Kiểm soát bộ nhớ đệm (caching): Sử dụng tiêu đề Cache-Control và các tiêu đề tương tự để kiểm soát bộ nhớ đệm của trình duyệt. Điều này giúp tăng hiệu suất và quản lý tải trọng của máy chủ.
  7. Xử lý đoạn mã lỗi: Khi xử lý lỗi trong Express.js, hãy sử dụng phương thức next() để chuyển yêu cầu tới middleware xử lý lỗi. Điều này giúp tách biệt quy trình xử lý yêu cầu chính và xử lý lỗi.
  8. Đặt tiêu đề bảo mật (Security headers): Hãy đảm bảo thiết lập các tiêu đề bảo mật như X-Content-Type-Options, X-XSS-Protection, Content-Security-Policy, và Strict-Transport-Security để bảo vệ ứng dụng khỏi các lỗ hổng bảo mật phổ biến.

Lưu ý rằng việc sử dụng Response Object trong Express.js cũng liên quan chặt chẽ đến quy tắc và tiêu chuẩn của HTTP. Hãy đảm bảo tìm hiểu và tuân thủ các quy tắc này để tối ưu hóa quá trình gửi phản hồi và đảm bảo an toàn và bảo mật trong ứng dụng của bạn.

Xem thêm Tìm hiểu tấn công HTTP Response Splitting

Phương thức Response Object

Sau đây là một số phương pháp:

Phương thức này nối giá trị đã chỉ định vào trường tiêu đề phản hồi HTTP. Điều đó có nghĩa là nếu giá trị được chỉ định không phù hợp thì phương pháp này sẽ khắc phục điều đó.

  1. Phương thức Response Append 

Phương pháp này tạo điều kiện cho bạn gửi tệp dưới dạng tệp đính kèm trong phản hồi HTTP.

  1. Phương thức Response Attachment
  1. Phương thức Response Cookie

Phương thức này được sử dụng để đặt tên cookie thành giá trị. Giá trị có thể là một chuỗi hoặc đối tượng được chuyển đổi thành JSON.

  1. Phương thức Response ClearCookie

Như tên chỉ định, phương thức clearCookie được sử dụng để xóa cookie được chỉ định bởi tên.

Set cookies

Clear cookies

  1. Phương thức Response Download

Phương pháp này chuyển tệp tại đường dẫn dưới dạng “tệp đính kèm” và thực thi trình duyệt nhắc người dùng tải xuống.

Ví dụ

  1. Phương thức Response End

Phương pháp này được sử dụng để kết thúc quá trình phản hồi.

Ví dụ:

  1. Phương thức Response Format

Phương thức này thực hiện thương lượng nội dung trên tiêu đề Chấp nhận HTTP trên đối tượng yêu cầu, khi có mặt.

  1. Phương thức Response Get

Phương thức này cung cấp tiêu đề phản hồi HTTP được chỉ định bởi trường.

  1. Response JSON

Phương thức này trả về phản hồi ở định dạng JSON.

  1. Response JSONP

Phương thức này trả về phản hồi ở định dạng JSON với sự hỗ trợ của JSONP.

  1. Response Links

Phương thức này điền vào trường tiêu đề HTTP của phản hồi bằng cách kết hợp các liên kết được cung cấp dưới dạng thuộc tính của tham số.

Ví dụ:

  1. Response Location

Phương thức này được sử dụng để đặt trường tiêu đề HTTP vị trí phản hồi dựa trên tham số đường dẫn được chỉ định.

  1. Response Redirect

Phương thức này chuyển hướng đến URL bắt nguồn từ đường dẫn được chỉ định, với trạng thái HTTP được chỉ định

  1. Response Render

Phương thức này hiển thị một dạng xem và gửi chuỗi HTML được kết xuất đến máy khách.

  1. Response Send

Phương thức này được sử dụng để gửi phản hồi HTTP.

  1. Response sendFile

Phương thức này được sử dụng để chuyển tệp theo đường dẫn đã cho. Nó đặt trường tiêu đề HTTP phản hồi loại nội dung dựa trên phần mở rộng của tên tệp.

  1. Response Set

Phương thức này được sử dụng để đặt phản hồi của trường tiêu đề HTTP thành giá trị.

  1. Response Status

Phương thức này đặt trạng thái HTTP cho phản hồi.

  1. Response Type

Phương thức này đặt tiêu đề HTTP kiểu nội dung thành kiểu MIME.

Xem thêm HTTP là gì?

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now