Advertisement
  1. Code
  2. Node.js

Viết API đầu tiên của bạn bằng Node.js và Express: Thiết lập Server

by
Read Time:8 minsLanguages:
This post is part of a series called Code Your First API With Node.js and Express.
Code Your First API With Node.js and Express: Understanding REST APIs
Code Your First API With Node.js and Express: Connect a Database

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Cách thiết lập Server Express API trong Node.js

Trong bài hướng dẫn trước, chúng ta đã đi tìm hiểu về kiến ​​trúc REST là gì, sáu hướng dẫn ràng buộc của REST, tìm hiểu các phương thức yêu cầu HTTP và code phản hồi của chúng và giải phẫu endpoint của RESTful API.

Trong hướng dẫn này, chúng ta sẽ thiết lập một server cài đặt API của chúng ta. Bạn có thể xây dựng API với bất kỳ ngôn ngữ lập trình và phần mềm server nào, nhưng chúng ta sẽ sử dụng Node.js, đây là cài đặt back-end của JavaScript và Express, một framework đơn giản, phổ biến cho Node.

Cài đặt

Yêu cầu đầu tiên của chúng ta là đảm bảo Node.js và npm được cài đặt toàn cục trên máy tính. Chúng ta có thể kiểm tra cả hai bằng cách sử dụng cờ -v, sẽ hiển thị phiên bản của chúng. Mở công cụ dòng lệnh của bạn và gõ như sau.

Phiên bản của bạn có thể hơi khác so với của tôi, nhưng miễn là có thì chúng ta có thể bắt đầu.

Hãy tạo một thư mục dự án gọi là express-api và di chuyển đến nó.

Bây giờ chúng ta đang ở trong thư mục mới của mình, chúng ta có thể khởi tạo dự án bằng lệnh init.

Lệnh này sẽ nhắc bạn trả lời một số câu hỏi về dự án mà bạn có thể điền vào hoặc không. Một khi thiết lập đã hoàn tất, bạn sẽ có một tập tin package.json trông như thế này:

Bây giờ chúng ta đã có package.json, chúng ta có thể cài đặt các phụ thuộc cần thiết cho dự án. May mắn là chúng ta không yêu cầu quá nhiều phụ thuộc, chỉ có bốn thứ được liệt kê dưới đây.

  • body-parser: Middleware dùng để phân tích body.
  • express: Một framework đơn giản mà chúng ta sẽ sử dụng cho máy chủ của chúng ta.
  • mysql: Một MySQL driver.
  • request (không bắt buộc): Một cách đơn giản để thực hiện yêu cầu HTTP.

Chúng ta sẽ sử dụng lệnh install theo sau mỗi phụ thuộc để hoàn tất thiết lập dự án của chúng ta.

Điều này sẽ tạo ra một tập tin package-lock.json và một thư mục node_modules, và package.json của chúng ta sẽ được cập nhật để trông giống như thế này:

Thiết lập HTTP Server

Trước khi bắt đầu thiết lập máy chủ Express, chúng ta sẽ nhanh chóng thiết lập một HTTP server với mô-đun http tích hợp của Node, để tìm hiểu về cách máy chủ đơn giản hoạt động như thế nào.

Tạo một tập tin có tên hello-server.js. Load mô-đun http, thiết lập số cổng (Tôi chọn 3001) và tạo server bằng phương thức createServer().

Trong bài viết giới thiệu về REST, chúng ta đã thảo luận về các yêu cầu và phản hồi liên quan đến một HTTP server. Chúng ta sẽ thiết lập server của chúng ta để xử lý một yêu cầu và hiển thị URL yêu cầu ở phía server và hiển thị thông điệp Hello, server! cho client.

Cuối cùng, chúng ta sẽ báo cho server biết cổng nào để lắng nghe và hiển thị lỗi nếu có.

Bây giờ, chúng ta có thể khởi động server với lệnh node theo sau là tên tập tin.

Bạn sẽ thấy phản hồi này trong terminal:

Để kiểm tra xem server có thực sự đang chạy hay không, hãy truy cập https://localhost:3001/ trên thanh địa chỉ trình duyệt của bạn. Nếu tất cả đều hoạt động bình thường, bạn sẽ thấy Hello, server! trên trang. Trong terminal của bạn, bạn cũng sẽ thấy URL được yêu cầu.

Nếu bạn trỏ đến http://localhost:3001/hello, bạn sẽ thấy URL: /hello.

Chúng ta cũng có thể sử dụng cURL trên local server của mình, nó sẽ cho chúng ta thấy header và body được trả về.

Nếu bạn đóng cửa sổ terminal bất cứ lúc nào, máy chủ sẽ biến mất.

Bây giờ chúng ta đã hiểu về cách server, yêu cầu và phản hồi hoạt động cùng nhau như thế nào, chúng ta có thể viết lại điều này trong Express, có một giao diện đơn giản hơn và các tính năng mở rộng.

Thiết lập một Express Server

Chúng ta sẽ tạo một tập tin mới, app.js, đây sẽ là điểm khởi đầu cho dự án của chúng ta. Cũng giống như với http server ban đầu, chúng ta sẽ yêu cầu một mô-đun và thiết lập một cổng để bắt đầu.

Tạo một tập tin app.js và đặt đoạn code sau vào đó.

Bây giờ, thay vì tìm kiếm tất cả các yêu cầu, chúng ta sẽ nói rõ rằng chúng ta đang tìm kiếm một yêu cầu GET trên thư mục gốc của server (/). Khi / nhận được yêu cầu, chúng ta sẽ hiển thị URL yêu cầu và thông điệp "Hello, Server!".

Sau cùng, chúng ta sẽ khởi động máy chủ trên cổng 3002 bằng phương thức listen().

Chúng ta có thể khởi động server với node app.js như chúng ta đã làm trước đây, nhưng chúng ta cũng có thể sửa đổi thuộc tính script trong package.json để tự động chạy lệnh này.

Bây giờ chúng ta có thể sử dụng npm start để khởi động server và chúng ta sẽ thấy thông báo của server trong terminal.

Nếu chúng ta chạy curl -i trên URL đó, chúng ta sẽ thấy rằng, lúc này nó được cung cấp bởi Express và có một số header bổ sung như Content-Type.

Thêm Middleware Body Parsing

Để dễ dàng xử lý các yêu cầu POSTPUT cho API của chúng ta, chúng ta sẽ thêm middleware body parsing. Đây là nơi mô-đun body-parser của chúng ta phát huy tác dụng. body-parser sẽ trích xuất toàn bộ phần body của một yêu cầu đến và phân tích nó thành một đối tượng JSON mà chúng ta có thể làm việc với nó.

Chúng ta chỉ cần yêu cầu mô-đun ở đầu tập tin của chúng ta. Thêm câu lệnh require sau vào đầu tập tin app.js của bạn.

Sau đó chúng ta nói với ứng dụng Express sử dụng body-parser, và tìm kiếm JSON.

Ngoài ra, hãy thay đổi thông điệp của chúng ta để gửi một đối tượng JSON dưới dạng một phản hồi thay vì văn bản thuần túy.

Sau đây là tập tin app.json đầy đủ của chúng ta.

Nếu bạn gửi curl -i đến server, bạn sẽ thấy rằng header hiện trả về Content-Type: application/json;charset=utf-8.

Định tuyến

Đến lúc này, chúng ta chỉ có một tuyến GET đến thư mục gốc (/), nhưng API của chúng ta sẽ có thể xử lý tất cả bốn phương thức yêu cầu HTTP chính trên nhiều URL. Chúng ta sẽ thiết lập một bộ định tuyến và tạo một số dữ liệu giả để hiển thị.

Hãy tạo một thư mục mới gọi là routes và một tập tin bên trong có tên là routes.js. Chúng ta sẽ liên kết với nó ở đầu của app.js.

Lưu ý rằng phần mở rộng .js là không cần thiết trong yêu cầu. Bây giờ chúng ta sẽ di chuyển listener GET của ứng dụng sang routes.js. Nhập code sau vào routes.js.

Cuối cùng, export router để chúng ta có thể sử dụng nó trong tập tin app.js.

Trong app.js, thay thế code app.get() mà bạn đã có trước đó bằng lệnh gọi tới routes():

Bây giờ bạn có thể truy cập http://localhost:3002 và sẽ thấy tương tự như trước. (Đừng quên khởi động lại server!)

Khi tất cả đã được thiết lập và hoạt động, chúng ta sẽ cung cấp một số dữ liệu JSON với một tuyến khác. Bây giờ chúng ta chỉ sử dụng dữ liệu giả vì cơ sở dữ liệu của chúng ta chưa được thiết lập.

Hãy tạo một biến users trong routes.js, với một số dữ liệu người dùng giả trong định dạng JSON.

Chúng ta sẽ thêm một tuyến GET khác vào bộ định tuyến, /users và gửi dữ liệu người dùng thông qua nó.

Sau khi khởi động lại server, bây giờ bạn có thể truy cập http://localhost:3002/users và bạn sẽ thấy tất cả dữ liệu của chúng ta được hiển thị.

Lưu ý: Nếu bạn không có tiện ích để xem JSON trên trình duyệt, tôi khuyên bạn nên tải về một cái, chẳng hạn như JSONView cho Chrome. Nó sẽ làm cho dữ liệu dễ đọc hơn nhiều!

Truy cập GitHub Repo của chúng tôi để xem code đầy đủ cho bài viết này và so sánh nó với code của bạn.

Phần tóm lược

Trong bài hướng dẫn này, chúng ta đã học cách thiết lập một máy chủ HTTP tích hợp và máy chủ Express trong Node, yêu cầu thông qua bộ định tuyến và URL và sử dụng dữ liệu JSON với các yêu cầu GET.

Trong phần cuối cùng của loạt bài RESTful API, chúng ta sẽ kết nối server Express của chúng ta với MySQL để tạo, xem, cập nhật và xóa người dùng trong cơ sở dữ liệu, hoàn thiện chức năng của API.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.