Привет Я сейчас пытаюсь понять, как правильно определить глобальную переменную в node.js. Я знаю, что это не очень хорошая практика, но в данном конкретном сценарии это единственный способ сделать это без использования подключения к базе данных.
Я получаю данные из github API для отображения некоторой информации, я пытаюсь сохранить их в глобальной переменной. Это должно позволить мне, например, передать указанный c объект из первого глобального списка в новый глобальный список, который отображает только выбранные элементы.
У меня есть файл с именем utils. js, у которого есть эти два пустых массива, которые должны быть глобальными:
let repoItems = [];
let bookmarkedItems = [];
exports.repoItems = repoItems;
exports.bookmarkedItems = bookmarkedItems;
Затем у меня есть другой файл, который выбирает и должен назначать элементы первому глобальному переменная, но похоже, что нет. Потому что в тот момент, когда я пытаюсь выбрать один элемент & pu sh во второй пустой массив, это невозможно, я получаю пустой массив. Я не уверен, что ошибка допущена из-за плохой реализации глобальной переменной из другого файла или из-за чего-то еще: /
Ниже я включаю извлекающую часть кода жирной частью, с которой я запутался :
let utils = require('../utils');
let {
repoItems,
} = utils;
router.get('/', async (req, res) => {
try {
const result = await fetchGithubAPI(`searching word`);
const urls = result.map(url => url);
console.log(urls);
res.render('repositories.ejs', {
'data': urls
});
} catch (e) {
console.log(e);
}
});
async function fetchGithubAPI(search) {
const response = await fetch(`https://api.github.com/?q=${search}`, {
method: 'GET',
headers: {
'Accept': 'application/vnd.github.v3+json',
'Content-Type': 'application/json',
},
});
const data = await response.json();
**repoItems = data.items.map(item => item);**
return repoItems;
}