Hướng dẫn javascript require json file - javascript yêu cầu tệp json

Nội dung bài viết

Video học lập trình mỗi ngày

JSON NodeJS(JavaScript Object Notation) được sử dụng rộng rãi trong việc chia sẻ dữ liệu với nhiều ngôn ngữ khác nhau. Nhờ tính đồng nhất và đơn giản dữ liệu, do đó trong các ứng dụng Nodejs cũng được thường xuyên sử dụng. Trong bài viết này, tipjs sẽ hướng dẫn cách đọc file và ghi file JSON trong Nodejs. Cung cấp cho bạn nhiều cách nhằm có thể ở hoàn cảnh nào chúng ta cũng có thể xử lý được fileJSON.  (JavaScript Object Notation) được sử dụng rộng rãi trong việc chia sẻ dữ liệu với nhiều ngôn ngữ khác nhau. Nhờ tính đồng nhất và đơn giản dữ liệu, do đó trong các ứng dụng Nodejs cũng được thường xuyên sử dụng. Trong bài viết này, tipjs sẽ hướng dẫn cách đọc file và ghi file JSON trong Nodejs. Cung cấp cho bạn nhiều cách nhằm có thể ở hoàn cảnh nào chúng ta cũng có thể xử lý được fileJSON. 

Giả sử chúng ta có một file databases.json sẵn có dữ liệudatabases.json sẵn có dữ liệu

[ { "name": "MySQL", "type": "RDBMS" }, { "name": "MongoDB", "type": "NoSQL" }, { "name": "Neo4j", "type": "Graph DB" } ]

Giờ chúng ta sẽ có bao nhiêu cách để đọc file này?

Read a JSON file using fs.readFile()

Sử dụng fs.readFile() để đọc file này, nhưng chú ý đây là cách đọc file không đồng bộ. Cho nên nếu bạn muốn xử lý data thì nên xử lý trong function của nó luôn, hay có thể gọi callback cũng được.

const fs = require('fs'); fs.readFile('./databases.json', 'utf8', (err, data) => { if (err) { console.log(`Error reading file from disk: ${err}`); } else { // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } });

Sử dụng JSON.parse() để phân tích cú pháp nó thành một đối tượng JSON sau đó dùng loop trong JavaScript, và có kết quả như thế này

MySQL: RDBMS MongoDB: NoSQL Neo4j: Graph DB

Bạn nào thường xuyên sử dụng promise cũng là một các viết chuẩn xác hơn.

Read a JSON file using fs.readFileSync()

Nếu bạn muốn đọc file một cách đồng bộ thì đây, giới thiệu cho các anh chị phương pháp đó là sử dụng fs.readFileSync(). Thay vì gọi hàm callback thì có thể sử dụng fs.readFileSync() như dưới đây, để xử lý data.

const fs = require('fs'); try { const data = fs.readFileSync('./databases.json', 'utf8'); // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } catch (err) { console.log(`Error reading file from disk: ${err}`); }

Chú ý: Mặc dù fs.readFileSync() cú pháp rõ ràng, bạn không nên sử dụng để đọc các tệp lớn vì nó liên quan đến vòng lặp sự kiện (Event loop) cũng như ảnh hưởng đến hiệu suất.

Reading a JSON file with require()

Cách cuối cùng mà chúng ta đang nói đến để đọc tệp JSON là sử dụng const fs = require('fs'); fs.readFile('./databases.json', 'utf8', (err, data) => { if (err) { console.log(`Error reading file from disk: ${err}`); } else { // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } });2. Tất cả những gì bạn cần làm là chuyển đường dẫn tệp JSON đến phương thức const fs = require('fs'); fs.readFile('./databases.json', 'utf8', (err, data) => { if (err) { console.log(`Error reading file from disk: ${err}`); } else { // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } });2 và nó sẽ đồng bộ đọc và phân tích cú pháp tệp JSON và trả về một đối tượng JSON đã sẵn sàng để sử dụng:

const databases = require('./databases.json'); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); });

Nhìn vào thì thấy const fs = require('fs'); fs.readFile('./databases.json', 'utf8', (err, data) => { if (err) { console.log(`Error reading file from disk: ${err}`); } else { // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } });2 hoạt động trống giống fs.readFileSync() vì nó làm việc đồng bộ. Với 3 cách đọc file JSON trong JavaScript thì chúng ta đi sang cách viết một file JSON như thế nào?

Writing to a JSON file

Cũng giống như fs.readFile() và fs.readFileSync() thì module fs cũng có hai phương thức để đọc file JSON đó là const fs = require('fs'); fs.readFile('./databases.json', 'utf8', (err, data) => { if (err) { console.log(`Error reading file from disk: ${err}`); } else { // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } });8 và fs.writeFileSync(). Nhìn vào tên file cũng hiểu rồi, khi nào muốn ghi đồng bộ thì sử dụng fs.writeFileSync() và ngược lại const fs = require('fs'); fs.readFile('./databases.json', 'utf8', (err, data) => { if (err) { console.log(`Error reading file from disk: ${err}`); } else { // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } });8.

Write to a JSON file using fs.writeFile()

Để ghi file JSON thì thử cách const fs = require('fs'); fs.readFile('./databases.json', 'utf8', (err, data) => { if (err) { console.log(`Error reading file from disk: ${err}`); } else { // parse JSON string to JSON object const databases = JSON.parse(data); // print all databases databases.forEach(db => { console.log(`${db.name}: ${db.type}`); }); } });8 xem code dưới. Và đương nhiên chúng ta trả về trạng thái trong callback function.

const fs = require('fs'); let user = { name: 'Anonystick', emai: '', age: 37, gender: 'Male', profession: 'Software Developer' }; // convert JSON object to a string const data = JSON.stringify(user); // write file to disk fs.writeFile('./user.json', data, 'utf8', (err) => { if (err) { console.log(`Error writing file: ${err}`); } else { console.log(`File is written successfully!`); } });

File json được save lại dưới tên là user.json và muốn đọc được thì dùng JSON.stringify() nhé các bro!user.json và muốn đọc được thì dùng JSON.stringify() nhé các bro!

Write to a JSON file using fs.writeFileSync()

Cách cuối cùng để ghi file JSON đó là MySQL: RDBMS MongoDB: NoSQL Neo4j: Graph DB1, chạy một cách đồng bộ.

const fs = require('fs'); let user = { name: 'Anonystick', emai: '', age: 37, gender: 'Male', profession: 'Software Developer' }; try { // convert JSON object to a string const data = JSON.stringify(user, null, 4); // write file to disk fs.writeFileSync('./user.json', data, 'utf8'); console.log(`File is written successfully!`); } catch (err) { console.log(`Error writing file: ${err}`); }

Kết qủa cũng tương tự nhưng có vẻ như việc xử lý từng bước có thể ngắn gọn và hay hơn. 

Khuyến khích sử dụng và học về cách lập trình đồng bộ. HếtTham khảo thêm: attacomsian
Tham khảo thêm: attacomsian

Chủ đề