Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

390
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!