Como su nombre lo indica, sigo recibiendo un mensaje "La consulta ya se ejecutó" mientras ejecuto las consultas Mongoose.find. El uso de '.clone' no parece solucionar el problema...
Mi código de llamada es:
let result = mongo.isValidUsername(req.body.username).then((data) => { return data; }); if ((await result) == false) { res.send("Sorry, that username is unavailable"); } else { mongo .addUser( req.body.username, req.body.password, req.body.firstName, req.body.lastName, req.body.email, req.body.phoneNumber ) .then(() => { let profileData = mongo.getProfileData(req.body.username); profileData .then((data) => { res.render("accountDisplay", { results: data, trans: [9.99], }); }) .catch((err) => { console.log(err); }); }); }Llamo a una consulta dos veces: una vez en isValidUsername () al principio (donde no he usado .clone) y luego nuevamente en getProfileData (donde HE usado .clone).
Sigo recibiendo este error. ¿Alguna idea de qué podría estar causándolo?
Aquí está el código para isValidUsername() y getProfileData(), por si acaso...
async function isValidUsername(usernameToQuery) { //connect to mongoose database mongoose.connect("mongodb://localhost:27017/bankDB"); try { let isValid = UserModel.findOne({ username: usernameToQuery }).then( (data) => { if (data == null) { return true; } else { return false; } } ); return await isValid; } catch (err) { return err; } } async function getProfileData(usernameToQuery) { mongoose.connect("mongodb://localhost:27017/bankDB"); let profileData = UserModel.findOne({ username: usernameToQuery }).clone(); console.log(await profileData); let profileArray = await profileData.then((data) => { return [ data._doc.firstName, data._doc.lastName, data._doc.email, data._doc.phoneNumber, ]; }); return await profileArray; }