Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
Mongoose 'Query was already executed' error

As the name states, I keep getting a "Query was already executed" while running Mongoose.find queries. Using '.clone' does not seem to be fixing the issue...

My calling code is:

  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);
          });
      });
  }

I call a query twice - Once in isValidUsername() at the beginning (where I have not used .clone) and then again in getProfileData( where I HAVE used .clone).

I keep getting this error. Any idea what could be causing it?

Here is the code for isValidUsername() and getProfileData(), just in case...

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;
}

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda