Nodejs đọc từng dòng tệp JSON

JSON là một định dạng phổ biến để chia sẻ dữ liệu giữa các ứng dụng được viết bằng các ngôn ngữ khác nhau. trong nút. js, JSON đã trở thành lựa chọn thuận tiện để lưu trữ dữ liệu nhờ tính đồng nhất và đơn giản của nó

Show

Nút. js cung cấp các mô-đun tích hợp giúp dễ dàng làm việc với dữ liệu JSON. Trong bài viết này, bạn sẽ học cách

  • Đọc tệp JSON từ đĩa
  • Ghi dữ liệu JSON vào một tệp
  • Sử dụng mô-đun
    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}`)
        })
      }
    })
    
    6 để tương tác với hệ thống tập tin
  • Sử dụng các phương thức tích hợp như JSON. phân tích cú pháp () và JSON. stringify() để chuyển đổi dữ liệu từ và sang định dạng JSON
  • Sử dụng phương pháp
    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}`)
        })
      }
    })
    
    7 toàn cầu để tải tệp JSON khi khởi động

Đọc từ tệp JSON

Trước khi tôi đi vào chi tiết cách đọc tệp JSON, trước tiên chúng ta hãy tạo một tệp JSON mới có tên 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 chứa dữ liệu JSON sau

cơ sở dữ liệu. json

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

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 là một tệp đơn giản được lưu trữ trên đĩa chứa một mảng đối tượng JSON. Bạn muốn đọc tệp này và in các bản ghi trên bàn điều khiển

Để đọc dữ liệu JSON từ tệp trên, bạn có thể sử dụng mô-đun gố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}`)
    })
  }
})
6. Mô-đun này cung cấp các phương thức để đọc, ghi, xem tệp và nhiều chức năng khác để tương tác với hệ thống tệp. Vì nó là một mô-đun gốc, bạn không cần phải cài đặt bất cứ thứ gì. Chỉ cần nhập nó vào mã của bạn bằng cách gọi
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
1

Mô-đun

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}`)
    })
  }
})
6 cung cấp cho chúng tôi hai phương thức,
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3 và
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
4, có thể được sử dụng để đọc dữ liệu từ một tệp. Cả hai chức năng này đều làm giống nhau - đọc tệp từ đĩa. Sự khác biệt duy nhất nằm ở cách các chức năng này thực sự được thực thi

Đọc tệp JSON bằng cách sử dụng MySQL: RDBMS MongoDB: NoSQL Neo4j: Graph DB 3

Phương thức

MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3 đọc dữ liệu từ tệp không đồng bộ. Nó không chặn việc thực thi vòng lặp sự kiện trong khi đọc tệp. Thay vào đó, điều khiển được chuyển sang dòng kế tiếp để thực thi các dòng mã còn lại. Khi dữ liệu tệp có sẵn,
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3 gọi hàm gọi lại được truyền cho nó dưới dạng đối số

Để đọc dữ liệu JSON từ tệp

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 bằng cách sử dụng phương thức
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3, chỉ cần nhập tên tệp, loại mã hóa tùy chọn và hàm gọi lại để nhận dữ liệu tệp

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}`)
    })
  }
})

Trong ví dụ trên, vì phương thức

MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3 trả về dữ liệu dưới dạng chuỗi JSON nên chúng ta phải 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}`)
    })
  }
})
71 để phân tích nó thành đối tượng JSON. Cuối cùng, chúng tôi sử dụng vòng lặp forEach() để in tất cả cơ sở dữ liệu trên bàn điều khiển

Đây là đầu ra của mã trên

MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB

Đọc tệp JSON bằng cách sử dụng MySQL: RDBMS MongoDB: NoSQL Neo4j: Graph DB 4

Phương thức

MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
4 đọc dữ liệu từ một tệp một cách đồng bộ. Không giống như
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3, nó chặn việc thực thi vòng lặp sự kiện cho đến khi tất cả dữ liệu từ tệp được tải

Thay vì truyền phương thức gọi lại, bạn chỉ truyền tên của tệp cho

MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
4 như hình bên dướ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}`)
    })
  }
})
7

Mặc dù

MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
4 có cú pháp rõ ràng, nhưng bạn không bao giờ nên sử dụng nó để đọc các tệp lớn vì nó chặn việc thực thi vòng lặp sự kiện và có thể ảnh hưởng nghiêm trọng đến hiệu suất của ứng dụng. Nó chỉ hữu ích khi đọc các tệp cấu hình khi khởi động ứng dụng trước khi thực hiện bất kỳ tác vụ nào khác

Đọc tệp JSON bằ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}`) }) } }) 7

Cuối cùng, cách cuối cùng để đọc tệp JSON là sử dụng phương thức toàn cầu

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}`)
    })
  }
})
7. Cách tiếp cận này tương tự như những gì bạn sử dụng để tải Node. js nhưng cũng hoạt động để tải các tệp JSON

Tất cả những gì bạn cần làm là chuyển đường dẫn tệp JSON tới 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}`)
    })
  }
})
7 và nó sẽ đọc và phân tích cú pháp tệp JSON một cách đồng bộ và trả về một đối tượng JSON sẵn sàng để 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}`)
    })
  }
})
8

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}`)
    })
  }
})
7 hoạt động giống như phương thức
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
4 — đọc tệp một cách đồng bộ, nhưng nó là một phương thức toàn cục có thể được gọi từ mọi nơi. Hơn nữa, nó tự động phân tích nội dung tệp thành một đối tượng JavaScript

Tuy nhiên, có một vài nhược điểm khi sử dụng phương pháp

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}`)
    })
  }
})
7

  1. Nó chỉ đọc tệp một lần và lưu trữ dữ liệu;
  2. Tệp phải có phần mở rộ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}`)
        })
      }
    })
    
    83. Nếu không có phần mở rộng, 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}`)
        })
      }
    })
    
    7 sẽ không coi nó là tệp JSON

Do những hạn chế trên,

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}`)
    })
  }
})
7 chỉ phù hợp để tải các tệp cấu hình tĩnh không thay đổi thường xuyên. Để đọc một tệp động như
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, bạn nên sử dụng phương thức
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3 để thay thế

Ghi vào tệp JSON

Cũng giống như phương thức

MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3 và
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
4, module
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}`)
    })
  }
})
6 cung cấp thêm 2 chức năng ghi file dữ liệu.
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}`)
    })
  }
})
01 và
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}`)
    })
  }
})
02

Như tên gợi ý, 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}`)
    })
  }
})
02 ghi dữ liệu vào tệp một cách đồng bộ trong khi
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}`)
    })
  }
})
01 ghi dữ liệu vào tệp theo cách không đồng bộ

Ghi vào tệp JSON bằng cách 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}`) }) } }) 01

Để ghi JSON vào một tệp bằng cách 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}`)
    })
  }
})
01, chỉ cần chuyển vào đường dẫn của tệp để ghi dữ liệu vào, chuỗi JSON mà bạn muốn ghi, loại mã hóa tùy chọn và hàm gọi lại sẽ được thực thi sau khi tệp được ghi

Lưu ý rằng nếu tệp chưa tồn tại, nó sẽ được tạo;

Đây là một ví dụ

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}`)
    })
  }
})
0

Trong ví dụ trên, chúng tôi đang lưu trữ đối tượng JSON

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}`)
    })
  }
})
07 vào tệp
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}`)
    })
  }
})
08

Lưu ý 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}`)
    })
  }
})
09 để chuyển đổi đối tượng JSON thành chuỗi JSON trước khi lưu nó vào đĩa. Nếu bạn cố ghi một đối tượng vào một tệp mà không xâu chuỗi nó trước, tệp của bạn sẽ trống và trông giống như bên dướ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}`)
    })
  }
})
0

Bây giờ, nếu bạn thực thi đoạn mã trên, bạn sẽ thấy nội dung sau trong tệp

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}`)
    })
  }
})
08

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ề mặt kỹ thuật, đó là tất cả những gì bạn cần để ghi JSON vào một tệp. Tuy nhiên, dữ liệu được lưu dưới dạng một dòng chuỗi trong tệp

Để in đẹp đối tượng JSON, hãy thay đổi 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}`)
    })
  }
})
09 như sau

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}`)
    })
  }
})
4

Bây giờ, nếu bạn mở tệp

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}`)
    })
  }
})
08, bạn sẽ thấy nội dung sau

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}`)
    })
  }
})
6

Ghi vào tệp JSON bằng cách 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}`) }) } }) 02

Cuối cùng, cách cuối cùng để ghi dữ liệu vào tệp JSON là sử dụng phương pháp

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}`)
    })
  }
})
02. Nó ghi dữ liệu vào một tệp một cách đồng bộ và chặn việc thực thi Nút. js vòng lặp sự kiện cho đến khi tệp được ghi vào đĩa

Hãy xem ví dụ sau 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}`)
    })
  }
})
02 để ghi một đối tượng JSON vào một tệp

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}`)
    })
  }
})
0

Cập nhật tệp JSON

Bây giờ chúng ta đã học cách đọc và ghi các tệp JSON, nếu bạn muốn cập nhật một tệp JSON hiện có thì sao?

Chúng tôi có thể kết hợp các phương pháp này để sử dụng các tệp JSON của mình dưới dạng cơ sở dữ liệu đơn giản. Bất cứ khi nào chúng tôi muốn cập nhật tệp JSON, chúng tôi có thể đọc nội dung, thay đổi dữ liệu và sau đó ghi dữ liệu mới trở lại tệp gốc

Đây là một ví dụ minh họa cách bạn có thể thêm một bản ghi khác vào tệp

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

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}`)
    })
  }
})
1

Bây giờ, nếu bạn thực thi đoạn mã trên, bạn sẽ thấy một mục mới trong

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 như hình bên dướ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}`)
    })
  }
})
2

thư viện bên thứ 3

Nếu bạn không muốn phân tích cú pháp hoặc xâu chuỗi dữ liệu JSON theo cách thủ công mỗi khi bạn đọc hoặc ghi vào tệp JSON, hãy sử dụng mô-đun jsonfile để thay thế

Mô-đun

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}`)
    })
  }
})
08 bao bọc mô-đun
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}`)
    })
  }
})
6 và các phương thức đối tượ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}`)
    })
  }
})
20 và hiển thị các phương thức tương tự như mô-đun
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}`)
    })
  }
})
6 để đọc và ghi các tệp JSON

Nhập lệnh sau vào thư mục gốc dự án của bạn để cài đặt mô-đun

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}`)
    })
  }
})
08

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}`)
    })
  }
})
3

Để đọc dữ liệu từ các tệp JSON, mô-đun

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}`)
    })
  }
})
08 cung cấp các 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}`)
    })
  }
})
24 và
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}`)
    })
  }
})
25. Chúng tương tự như những gì được cung cấp bởi mô-đun
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}`)
    })
  }
})
6, ngoại trừ việc chúng tự động phân tích nội dung của tệp thành một đối tượng JSON

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}`)
    })
  }
})
4

Tương tự, để ghi dữ liệu vào tệp JSON, bạn có thể sử dụng 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}`)
    })
  }
})
27 hoặ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}`)
    })
  }
})
28

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}`)
    })
  }
})
5

Phần kết luận

Trong bài viết này, chúng tôi đã xem xét các cách khác nhau để đọc và ghi các tệp JSON, bao gồm mô-đun

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}`)
    })
  }
})
6, phương pháp
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}`)
    })
  }
})
7 và mô-đun
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}`)
    })
  }
})
08 — một mô-đun của bên thứ ba

Mô-đun

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}`)
    })
  }
})
6 là mô-đun gốc cung cấp các chức năng cho cả đọc và ghi tệp. Các phương thức
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
3 và
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}`)
    })
  }
})
01 có thể được sử dụng để đọc và ghi dữ liệu vào các tệp JSON một cách không đồng bộ. Để tương tác đồng bộ với hệ thống tệp, có sẵn các phương thức
MySQL: RDBMS
MongoDB: NoSQL
Neo4j: Graph DB
4 và
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}`)
    })
  }
})
02

Bạn cũng có thể sử dụng phương pháp toàn cầu

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}`)
    })
  }
})
7 để đọc và phân tích đồng bộ tệp JSON khi khởi động. Tuy nhiên, nó chỉ lưu trữ dữ liệu tệp và chỉ có thể được sử dụng để đọc các tệp có phần mở rộ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}`)
    })
  }
})
83

Nếu bạn muốn tìm hiểu thêm, hãy xem JSON thực sự là gì và cách bạn có thể đọc và ghi một đối tượng JSON vào một tệp trong Node. js

Làm cách nào để đọc từng dòng tệp trong nodejs?

Phương pháp 1. Sử dụng Mô-đun Readline . Readline là một mô-đun riêng của Node. js, nó được phát triển đặc biệt để đọc từng dòng nội dung từ bất kỳ luồng nào có thể đọc được. Nó có thể được sử dụng để đọc dữ liệu từ dòng lệnh. const readline = require('readline');

Làm cách nào để đọc tệp JSON trong nodejs?

Để tải dữ liệu từ khách hàng. json, chúng tôi sẽ sử dụng fs. readFile , chuyển cho nó đường dẫn đến tệp của chúng tôi, loại mã hóa tùy chọn và gọi lại để nhận dữ liệu tệp . Nếu tệp được đọc thành công, nội dung sẽ được chuyển đến hàm gọi lại.

Làm cách nào để đọc từng dòng tệp JSON trong JavaScript?

Sử dụng Readline createInterface trong đó đầu vào là luồng có thể đọc được tạo bằng fs. createReadStream('kiểm tra. json') . Trong các tùy chọn giao diện, chúng tôi cũng chuyển crlfDelay , điều này cho biết rằng nếu độ trễ giữa \r và \n vượt quá crlfDelay mili giây, thì cả \r và \n sẽ được coi là đầu vào cuối dòng riêng biệt.

Làm cách nào để đọc từng dòng tệp trong js?

Trong JavaScript, phương thức tích hợp sẵn FileReader() cùng với mô-đun readline có thể được sử dụng để đọc từng dòng tệp . Phương thức FileReader() đọc nội dung của các tệp được lưu trữ trên hệ thống cục bộ. Hơn nữa, mô-đun readline thực hiện việc đọc nội dung. Cả hai phương pháp này đều yêu cầu nguồn của tệp.