const Message = require("../models/message.js"); const User = require("../models/user.js"); const asyncHandler = require("express-async-handler"); exports.index = asyncHandler(async (req, res, next) => { // if user is logged in if (req.user) { // gets messages addressed to user from database let DMs = await Message.find({ to: req.user.username }).lean().exec(); // replaces from field with actual user for (let i = 0; i < DMs.length; i++) { const user = await User.findOne({ username: DMs[i].from }).lean().exec(); DMs[i].from = user; } // gets messages addressed to all chat from database const allChat = await Message.find({ to: "all" }).lean().exec(); // replaces from field with actual user for (let z = 0; z < allChat.length; z++) { const user = await User.findOne({ username: allChat[z].from }) .lean() .exec(); allChat[z].from = user; } // render index page return res.render("index", { DMs: DMs, allChat: allChat, user: req.user, }); } // otherwise redirect to login page res.redirect("/user/login"); });