Javascript 如何将数据物理添加到阵列中?

Javascript 如何将数据物理添加到阵列中?,javascript,node.js,database,filesystems,Javascript,Node.js,Database,Filesystems,所以我用这个叫做Glitch的网站来托管一个discord机器人。但是,这是我第一次需要物理存储数据,因此如果出现停机,我在程序运行时插入的所有数据都不会丢失 为此,我最初考虑使用数据库,但它看起来太复杂了,所以我决定让程序编辑一个文件并在那里添加数据。然而,我找不到检索该数据的方法,因为glitch不允许您引用其他文件中的变量,即使它引用了,也无法找到它,因为数据无法存储在数组中 所以我的问题是,如果我要使用fs,我如何将数据添加到数组中,以便以后检索它?如果没有,请有人指导我如何在一个(免费

所以我用这个叫做Glitch的网站来托管一个discord机器人。但是,这是我第一次需要物理存储数据,因此如果出现停机,我在程序运行时插入的所有数据都不会丢失

为此,我最初考虑使用数据库,但它看起来太复杂了,所以我决定让程序编辑一个文件并在那里添加数据。然而,我找不到检索该数据的方法,因为glitch不允许您引用其他文件中的变量,即使它引用了,也无法找到它,因为数据无法存储在数组中

所以我的问题是,如果我要使用fs,我如何将数据添加到数组中,以便以后检索它?如果没有,请有人指导我如何在一个(免费)数据库中设置和添加我之前提到的数据

示例:

let array1 = ["1, 2, 3", "4, 5, 6"]

//How can i physically add data to this array so that it shows up in the editor and can be retrieved later?

我试图尽可能多地解释这一点,但我不知道我想做什么是否清楚。如果没有,请给我留言。

如果您只需要这样做,那么您就可以非常轻松地在node.js中读取和写入数组到文件中,如下所示:

const fsp = require('fs').promises;

async function readData(fname) {
    let data = await fsp.readFile(fname);
    return JSON.parse(data);
}

function writeData(fname, data) {
    return fsp.writeFile(fname, JSON.stringify(data));
}
let d = [1,2,3,4,5];

writeData("somefile.json", d).then(() =>  {
    console.log("data written to file successfully");
}).catch(err => {
    console.log(err);
});
这两个函数都返回一个承诺,因此您可以这样使用它们:

const fsp = require('fs').promises;

async function readData(fname) {
    let data = await fsp.readFile(fname);
    return JSON.parse(data);
}

function writeData(fname, data) {
    return fsp.writeFile(fname, JSON.stringify(data));
}
let d = [1,2,3,4,5];

writeData("somefile.json", d).then(() =>  {
    console.log("data written to file successfully");
}).catch(err => {
    console.log(err);
});
然后,稍后(在上述写入完成后),您可以读取数据:

readData("someFile.json").then(data => {
    console.log(data);
    // use the data here
}).catch(err => {
    console.log(err);
});

你为什么要这么做?为什么不使用数据库?为什么使用文件会有问题?你能发布更多的代码吗?我在使用数据库方面没有问题,但我觉得它们非常困难。例如,Oracle有一个非常复杂的MySQL下载页面,其中包含数千个文件,我不知道我是否真的需要。我不知道你的级别,但学习使用数据库是一件非常好的事情……你几乎必须在每个项目(存储客户、购买、日志等)中使用它,因为它将保存你的数据。文件可能会损坏,不允许多线程访问(大多数情况下)等等将数据库添加到项目中并非易事,但它非常有用,您将从中学到很多