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?
- 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ễ.
- 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.
- 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:
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:
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:
.
├── 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 products
và categories
để lưu trữ dữ liệu. Sử dụng SQL sau để tạo bảng:
sql
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