Biết về Node.js và MongDB (phần 6)

Xử lí các files trong Node.js

Không giống môi trường trình duyệt, Node.js cung cấp các hàm để xử lí các files trên máy tính của chúng ta qua
node:fs (filesystem) module. Ví dụ, chúng ta có thể sử dụng chức năng này để đọc và viết các files khác nahu hay
thậm chí sử dụng các files như một CSDL đơn giản.
Đi theo các bước này để tạo script Node.js đầu tiên của bạn cái xử lí các files:
1. Tạo một file backend/files.js mới.
2. Nhập khẩu các hàm writeFileSync và readFileSync từ node:fs internal Node.js module. Module này không cần cài
đặt qua npm, khi nó được cung cấp bởi Node.js runtime.

import { writeFileSync, readFileSync } from ‘node:fs’

3. Tạo một mảng đơn giản chứa các users, với name và email address:

const users = [{ name: ‘Adam Ondra’, email: ‘adam.ondra@climb.
ing’ }]

4. Trước khi chúng ta có thể lưu mảng này vào một file, chúng ta trước tiên cần chuyển đổi nó thành một string
bằng cách sử dụng JSON.stringify:

const usersJson = JSON.stringify(users)

5. Bây giờ chúng ta có thể lưu JSON string của chúng ta vào một file sử dụng hàm writeFileSync. Hàm này lấy
2 đối số – cái đầu tiên filename, sau đó là string sẽ bị viết vào file:

writeFileSync(‘backend/users.json’, usersJson)

6. Sau khi viết vào file, chúng ta có thể thử đọc nó một lần nữa sử dụng readFileSync và duyệt JSON string sử
dụng JSON.parse:

const readUsersJson = readFileSync(‘backend/users.json’)
const readUsers = JSON.parse(readUsersJson)

7. Cuối cùng, chúng ta ghi lại mảng được duyệt:

console.log(readUsers)

8. Bây giờ chúng ta có thể chạy script của chúng ta. Bạn sẽ thấy rằng mảng được ghi lại và một file users.json
được tạo trong thư mục backend/ của chúng ta:

$ node backend/files.js

Bạn có thể nhận thấy rằng chúng ta đã sử dụng writeFileSync, và không phải writeFile. Hành vi mặc định của
Node.js là chạy mọi thứ không đồng bộ, cái có nghĩa rằng nếu chúng ta sử dụng writeFile, file có thể không được
tạo tại thời điểm khi chúng ta gọi readFile, khi code không đồng bộ không được thực thi trong trật tự.
Hành vi này có thể là phiền toái khi viết các scripts đơn giản như chúng ta đã làm, nhưng rất là hữu dụng khi
làm việc với, ví dụ, các yêu cầu mạng, nơi chúng ta không muốn phong tỏa những người dùng khác khỏi truy cập
dịch vụ của chúng ta trong khi giải quyết yêu cầu khác.
Sau khi học về xử lí các files với Node.js, hãy học nhiều hơn về code không đồng bộ được thực thi như thế nào
trong trình duyệt và Node.js.

Chia sẻ