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

394
Vistas
Cómo eliminar una clave específica de la respuesta JSON proveniente de MongoDB en ExpressJS

Estoy creando una aplicación simple usando MEAN stack. Mi código funciona bien, pero quiero eliminar una clave de la respuesta. Por favor, mire mi ocde.

modelos/usuario.js

 const mongoose = require('mongoose'); const Schema = mongoose.Schema; const userSchema = new Schema({ firstName: String, lastName: String, email: String, //password: String, // <--------- commented out userid: String, skills: [] }) module.exports = mongoose.model('user', userSchema, 'users');

Tenga en cuenta que he comentado la clave de password . Pero supongo que eso no es suficiente. Como todavía puedo ver la contraseña en respuesta:

Captura de pantalla del cartero

(Nota: la identificación de correo electrónico y la contraseña cifrada en esta imagen son absolutamente falsas y, por lo tanto, no hay ningún problema de seguridad)

ingrese la descripción de la imagen aquí

api.js

 const User = require('../models/user'); ... router.get('/users', function (req, res) { console.log('Get request for all users'); User.find({}) .exec(function (err, user) { if (err) { console.log("Error retrieving users"); } else { res.json(user); } }); });

Ahora, mañana cuando usaré el correo electrónico y la contraseña reales, aunque cifraré la contraseña, pero aún así no quiero mostrar la clave de la password en absoluto. Tampoco debe mostrarse en la pestaña de red del navegador.

Por favor dame algunas direcciones.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede usar el método de select de mongoose para excluir ciertos campos. https://mongoosejs.com/docs/api.html#query_Query-select

 User.find({}) .select('-password') .exec(function (err, user) { if (err) { console.log("Error retrieving users"); } else { res.json(user); } });

over 4 years ago · Santiago Trujillo Denunciar

0

Puedes probar esto:

 const User = require('../models/user'); ... router.get('/users', function (req, res) { console.log('Get request for all users'); const user = User.find({} , {password:0}); return res.json({ user: user }); });
over 4 years ago · Santiago Trujillo Denunciar

0

Si simplemente no desea mostrar la contraseña al generar los datos, solo necesita hacer esto en su esquema:

 const MongooseSchema = new mongoose.Schema({ firstName: { type: String, required: [true, 'Please enter a first name!'], }, lastName: { type: String, required: [true, 'Please enter a last name!'], }, email: { type: String, unique: true, required: [true, 'Please enter an email address!'], match: [ /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, 'Please enter a valid email address', ], }, password: { type: String, required: [true, 'Please enter a password'], select: false, }, // userid: String, Id for user will be created by mongodb automatically skills: { type: Array, required: [true, 'Please enter skills!'], }, createdAt: { type: Date, default: Date.now, }, }); module.exports = mongoose.model('User', MongooseSchema);

Ahora, cuando encuentre usuarios o un usuario, no se devolverá una contraseña o contraseñas en la respuesta. También mejoré tu esquema.

over 4 years ago · Santiago Trujillo Denunciar
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