Я продолжаю стучать головой о стену из-за множества различных ошибок. Это то, что код, который я пытаюсь использовать:Проблемы с файловой системой node.js
fs.readFile("balance.txt", function (err, data) //At the beginning of the script (checked, it works)
{
if (err) throw err;
balance=JSON.parse(data);;
});
fs.readFile("pick.txt", function (err, data)
{
if (err) throw err;
pick=JSON.parse(data);;
});
/*....
.... balance and pick are modified
....*/
if (shutdown)
{
fs.writeFile("balance2.txt", JSON.stringify(balance));
fs.writeFile("pick2.txt", JSON.stringify(pick));
process.exit(0);
}
В конце сценария, файлы не были изменены малейшем. Затем я узнал, что на этом сайте, что файлы были открыты 2 раза одновременно, или что-то подобное, поэтому я попытался это:
var balance, pick;
var stream = fs.createReadStream("balance.txt");
stream.on("readable", function()
{
balance = JSON.parse(stream.read());
});
var stream2 = fs.createReadStream("pick.txt");
stream2.on("readable", function()
{
pick = JSON.parse(stream2.read());
});
/****
****/
fs.unlink("pick.txt");
fs.unlink("balance.txt");
var stream = fs.createWriteStream("balance.txt", {flags: 'w'});
var stream2 = fs.createWriteStream("pick.txt", {flags: 'w'});
stream.write(JSON.stringify(balance));
stream2.write(JSON.stringify(pick));
process.exit(0);
Но, на этот раз, оба файла пуст ... Я знаю, что я должен ошибки, но я просто не вижу, где проблема. Я не возражаю хранить 2 объекта в одном файле, если это может помочь. Кроме того, я никогда не делал javascript в своей жизни до вчерашнего дня, поэтому, пожалуйста, дайте мне простое объяснение, если вы знаете, что здесь не удалось.
Добро пожаловать в удивительный мир ** асинхронном **! Вы не можете этого сделать. Используйте обещания или 'npm install async' – SLaks
Вы имеете в виду, что я не могу сохранить объект в файле и перечитать его после? Я думал, что это принято делать? – pie3636
Вы можете, но вам нужно дождаться завершения каждого шага. – SLaks