恭喜您有了编写机器人的想法,以便进行一些编码练习。我打赌你会成功的!
我建议你试着把你的问题分成小块,这样会更容易推理。
Step1 - 存储
我同意你使用 JSON 文件 作为数据存储。对于一个旨在成为“健身房”的应用程序来说已经绰绰有余了,你可以在世界上所有的时间开始研究 Postgres、MySQL 或 Mongo 等数据库。
用于存储值列表的 JSON 文件可能如下所示:
{
"values": [
"Map: Battlefield",
"Map: Final Destination",
"Map: Pokemon Stadium II"
]
}
当您将这段代码保存到 list1.json 时,您就有了第一个数据文件。
Step2 - 阅读
在 NodeJS 中读取 JSON 文件 很简单:
const list1 = require('./path-to/list1.json');
console.log(list.values);
这将在您的应用启动时将文件的全部内容加载到内存中。您还可以使用file system API 了解更复杂的文件读取方式。
Step3 - 写作
您似乎知道如何使用 push() 或 splice() 等 API 解决内存中数组修改。
修复内存表示后,您需要将更改保存到文件中。您基本上必须以 JSON 格式写下来。
选项 n.1:您可以使用 Node 的文件系统 API:
// https://stackoverflow.com/questions/2496710/writing-files-in-node-js
const fs = require('fs');
const filePath = './path-to/list1.json';
const fileContent = JSON.stringify(list1);
fs.writeFile(filePath, fileContent, function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
选项 n.2:您可以使用 fs-extra,这是对基本 API 的扩展:
const fs = require('fs-extra');
const filePath = './path-to/list1.json';
fs.writeJson(filePath, list1, function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
在这两种情况下,list1 都来自前面的步骤,它是您在内存中修改数组的地方。
注意异步代码:
两个写作示例都使用non-blocking asynchronous API calls - 链接指向一篇不错的文章。
为简单起见,您可以首先使用 同步 API,它基本上是:
fs.writeFileSync
fs.writeJsonSync
您可以在上面的链接中找到所有详细信息。
享受机器人编码的乐趣!