0
0
Lập trình
TT

Hướng dẫn xây dựng API Import CSV với Node.js và Express

Đăng vào 3 tuần trước

• 3 phút đọc

Giới thiệu

Node.js đã trở thành một lựa chọn phổ biến cho các startup nhờ vào vô số ưu điểm của nó. Bài viết này sẽ giúp bạn hiểu cách xây dựng một API để nhập liệu từ file CSV bằng Node.js và Express.

Tại sao nên sử dụng Node.js?

  1. Hiệu suất cao: Node.js được tối ưu hóa để xử lý nhiều kết nối đồng thời mà không bị chậm trễ.
  2. Dễ học và dễ phát triển: Với JavaScript, bạn có thể phát triển cả front-end và back-end chỉ với một ngôn ngữ duy nhất.
  3. Cộng đồng hỗ trợ lớn: Node.js có một cộng đồng đông đảo với nhiều thư viện và công cụ hỗ trợ.

Dựa trên các yếu tố trên, mình quyết định thực hiện một dự án nhỏ để xây dựng một API phục vụ việc nhập liệu từ file CSV. Trong bài viết này, mình sẽ chia sẻ từng bước thực hiện và tối ưu hóa hiệu suất của API này.

Tại sao là nhập liệu từ CSV?

File CSV là định dạng phổ biến trong nhiều ứng dụng vì tính đơn giản và khả năng tương tác với nhiều hệ thống. Việc nhập dữ liệu từ file CSV cũng giúp cho người không chuyên về công nghệ dễ dàng sử dụng hơn.

Ưu điểm của việc sử dụng CSV

  • Thân thiện với người dùng: Dễ dàng cho những ai không quen với công nghệ.
  • Quản lý mối quan hệ dễ dàng: CSV giúp tổ chức và phân loại dữ liệu một cách hiệu quả.
  • Hỗ trợ di chuyển dữ liệu: Có thể chuyển dữ liệu từ hệ thống cũ sang hệ thống mới.

Bắt đầu xây dựng API

Trước tiên, chúng ta cần khởi tạo một dự án Node.js với các thư viện cần thiết như Express, Multer để xử lý file upload, và Sequelize để tương tác với cơ sở dữ liệu. Dưới đây là hướng dẫn chi tiết từng bước:

1. Khởi tạo dự án

Sử dụng các lệnh sau để tạo một folder dự án và khởi tạo npm:

Copy
mkdir api-import-csv && cd api-import-csv
npm init -y

2. Cài đặt các thư viện cần thiết

Tiếp theo, cài đặt các thư viện cần thiết:

Copy
npm install express multer fast-csv sequelize pg

3. Tạo cấu trúc thư mục

Cấu trúc thư mục nên được tổ chức như sau:

Copy
.
├── src
│   ├── config
│   ├── controllers
│   ├── models
│   ├── routes
│   └── index.js
└── package.json

4. Tạo cơ sở dữ liệu PostgreSQL

Tạo một cơ sở dữ liệu PostgreSQL với bảng productscategories để lưu trữ dữ liệu. Sử dụng SQL sau để tạo bảng:

sql Copy
CREATE TABLE categories (
id SERIAL PRIMARY KEY,
name VARCHAR(50)
);

CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
price DECIMAL(10,2),
description TEXT,
category_id INT REFERENCES categories(id)
);

5. Tạo mô hình Sequelize

Sử dụng Sequelize để định nghĩa mô hình cho các bảng đã tạo.

6. Xây dựng các routes và controllers

Tạo các route cho API, bao gồm các endpoint như:

  • GET /api/products: Lấy danh sách sản phẩm.
  • POST /api/products/import: Nhập liệu từ file CSV.

7. Thực hiện Import CSV

Sử dụng thư viện fast-csv để phân tích các dòng trong file CSV, xác thực và lưu dữ liệu vào cơ sở dữ liệu.

8. Tối ưu hóa hiệu suất

Nên sử dụng các phương thức như bulkInsert để nhập dữ liệu theo lô, giúp giảm thiểu thời gian xử lý khi làm việc với một lượng lớn dữ liệu.

Kết luận

Bài viết đã giới thiệu từng bước để xây dựng một API nhập liệu từ file CSV bằng Node.js và Express. Hy vọng những kiến thức này sẽ hữu ích cho bạn trong các dự án sắp tới. Đừng quên kiểm tra thư viện và mã nguồn trong repository của mình để có thêm tài liệu tham khảo!

Liên kết tham khảo

Từ khóa: API Node.js, Import CSV Node.js, Express.js, Sequelize, POST, GET
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào