Quiero devolver todos los usuarios en formato JSON excepto sus contraseñas. Para hacerlo, he hecho algo como esto.
try { const rawResults = await model.find(query).limit(limit).skip(startIndex) results.results = rawResults.forEach((v) => delete v.password) } catch (error) { results.error = error }ahora, cuando intento consolar. registrar el valor del resultado, siempre devuelve
{ next: null, results: undefined }Por favor, ayúdame a solucionar este problema. Muchas gracias.
ForEach modifica el objeto original.
Si ya no necesita rawResults (con suerte, ya que las contraseñas deben cifrarse como señaló Nick ), puede usar su código de la siguiente manera:
try { const rawResults = await model.find(query).limit(limit).skip(startIndex) rawResults.forEach((v) => delete v.password) results.results = rawResults } catch (error) { results.error = error }Si necesita RawResults separados y objetos de resultados, puede usar map en lugar de forEach:
try { const rawResults = await model.find(query).limit(limit).skip(startIndex) results.results = rawResults.map(({password, ...v}) => v) } catch (error) { results.error = error }Array.prototype.forEach devuelve undefined .
Simplemente llame a rawResults.forEach((v) => delete v.password) sin los results.results = y su código funcionará.