Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

395
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda