Через пару месяцев go я работал над побочным проектом, используя Node и Express. Мне пришлось запустить npm rebuild, потому что версия узла моей системы не синхронизировалась c с версией моего приложения. Но теперь каждый раз, когда я go перехожу на страницу, он дважды загружает все функции (я думаю, при нажатии и при загрузке). Вот копия всех функций, связанных с моей целевой страницей.
index. js:
app.get("/", userCheckup, guessLoad);
userCheckup:
exports.userCheckup = (req, res, next) => {
var user = auth.currentUser;
var authenticated;
if(user) {
authenticated = true;
res.locals.authenticated = authenticated;
res.locals.uid = user.uid;
res.locals.email = user.email;
next();
} else {
authenticated = false;
res.locals.authenticated = authenticated;
next();
}
}
guessLoad:
exports.guessLoad = async(req, res) => {
const user = res.locals.uid;
console.log("aagaaaint");
var randNr, randId;
var getCount = await db.collection("recipeCount").doc("count").get();
randNr = Math.floor(Math.random() * getCount.data().count);
var getIds = await db.collection("recipeCount").doc("ids").get();
if(getIds.data().idList != null) {
randId = getIds.data().idList[randNr];
var getRecipe = await db.collection("recipes").doc(randId).get();
if(getRecipe.exists != true) {
res.render('noRecipeFound', {uid : res.locals.uid})
}
var randomRecipe = new Object();
randomRecipe.id = randId;
randomRecipe.country = getRecipe.data().country.toLowerCase();
randomRecipe.saves = getRecipe.data().saves;
randomRecipe.cookingTime = getRecipe.data().cookingTime;
randomRecipe.servings = getRecipe.data().servings;
randomRecipe.dish = getRecipe.data().dish;
randomRecipe.image = getRecipe.data().image;
randomRecipe.description = getRecipe.data().description;
randomRecipe.user = getRecipe.data().user;
var ingredients = getRecipe.data().ingredients;
var ingredientsPreview = []
for (var i = 0; i < ingredients.length && i < 3; i++) {
ingredientsPreview.push(" " + ingredients[i].ingredient);
}
randomRecipe.ingredients = ingredientsPreview;
var alreadySaved = false;
if(typeof user !== "undefined") {
const getUser = await db.collection('users').doc(user).get();
const userSaves = getUser.data().saved;
for(id of userSaves) {
if(id == randomRecipe.id) {
alreadySaved = true;
}
}
}
// save cookie
var cookies = cookie.parse(req.headers.cookie || '');
res.cookie('previous', randId)
var last = false;
if(Object.keys(cookies).length === 0 && cookies.constructor === Object) {
var last = true;
}
console.log(cookies);
console.log("request arrived for URL", req.url);
res.render("landing", {uid : res.locals.uid, randomRecipe : randomRecipe, alreadySaved : alreadySaved})
}
}