首页 > 解决方案 > 有没有办法在 node.js 中读取和写入二维数组到 .db 或 .txt 文件

问题描述

我对这个领域真的很陌生,刚开始我的第一个项目,而不是使用复杂的数据库,我只想将一个简单的二维数组(表)存储到文件中,以便以后检索它,我确实查看了fs.writeFile但它似乎不接受这种格式的数组...

我对这个领域真的很陌生,所以如果有任何其他存储数据的方式,或者如果这是一种非常糟糕的存储数据方式,那么请建议我该怎么做

var myArray = [
["bob","john","jack"],
[62,31,11],
["employed","unemployed","uneligible"],
["engineer","doctor","student"],
["21/09/2021","28/11/2021","16/12/2021"]]

如何将其保存到文件(任何文件)以供以后使用

// something like this 

writeToFile( "./info.db" , myArray )

// inside the file info.db
[["bob","john","jack"],[62,31,11],["employed","unemployed","uneligible"],["engineer","doctor","student"],["21/09/2021","28/11/2021","16/12/2021"]]

并且为了将该数组作为数组返回,我确实尝试使用带有 utf8 编码的 readFileSync,但是当我尝试读取数据 [0] 时,我将数据作为缓冲区返回,我得到了字符串的第一个字符“ [ "

标签: javascriptnode.jsdatabasestorefs

解决方案


这是因为fs.writeFile接受一个字符串作为第二个参数。所以我们可以JSON.stringify用数据代替原始的 JS对象

const { writeFileSync } = require('fs');

var myArray = [
    ["bob","john","jack"],
    [62,31,11],
    ["employed","unemployed","uneligible"],
    ["engineer","doctor","student"],
    ["21/09/2021","28/11/2021","16/12/2021"]
];

writeFileSync('./info.db', JSON.stringify(myArray));

总的来说,使用 JSON 作为大型数据库并不是一个好习惯,因为

  • 首先,它不是关系型
  • 它不是 DBMS,它是一种数据格式。

推荐阅读