Мой Javascript взаимодействует со следующими 2 файлами JSON:
readers.json:
[
{
"readerID": 1,
"name": "Maria",
"weeklyReadingGoal": 350,
"totalMinutesRead": 5600,
"bookID": 65
},
{
"readerID": 2,
"name": "Daniel",
"weeklyReadingGoal": 210,
"totalMinutesRead": 3000,
"bookID": 65
}
]
Books.json
[
{
"bookID": 65,
"title": "Goodnight Moon",
"author": "Margaret Wise Brown",
"publicationYear": "1953"
},
{
"bookID": 75,
"title": "Winnie-the-Pooh",
"author": "A. A. Milne",
"publicationYear": "1926"
}
]
На данный момент я могу УДАЛИТЬ книгу из book.json
Когда я удаляю книгу, и bookID этой книги существует в reader.json объекте, я хочу обновить этот идентификатор до 0.
Например, если я удаляю книгу, где bookID = 65, я хочу изменить все bookID, которые равны 65 в reader.json , на ноль.
Ниже приведен мой код, при необходимости я могу предоставить дополнительный код:
Books.js:
var data = getBookData();
var pos = data.map(function (e) {
return e.bookID;
}).indexOf(parseInt(req.params.id, 10));
if (pos > -1) {
data.splice(pos, 1);
} else {
res.sendStatus(404);
}
saveBookData(data);
var readerData = getReaderData();
var bookID = req.params.id;
console.log('BOOK ID - ' + bookID); // prints: BOOK ID - 47
readerData.forEach(function (x) {
if (x.bookID === bookID) {
x.bookID = null;
}
else {
console.log('Deleted book was not associated with any reader');
console.log('BOOK ID in else - ' + x.bookID); // prints: BOOK ID in else - 47
}
});
saveReaderData(readerData);
res.sendStatus(204);
});
function getReaderData() {
var data = fs.readFileSync(readerFile, 'utf8');
return JSON.parse(data);
}
Когда я запускаю этот код, книга удаляется из books.json , но соответствующие идентификаторы bookID в reader.json остаются теми же.
Кроме того, в блоке else
, указанном выше, регистрируются соответствующие идентификаторы bookID, но по какой-то причине код не поступает в блок if
.