• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

157
Views
delete operator not functioning as expected in node.js

In my node.js express application I am retrieving a user from my database

const newUser = await User.create({
      username,
      password,
      email,
      avatar,
})

but before sending the response with the user object I want to remove the password.

delete newUser.password;
return res.status(200).json({ token, user: newUser });

but in my response the password is returned.

console.log(JSON.stringify(newUser)) returns:

{"_id":"11111111","username":"dylan","email":"dylan@email.com","admin":true,"password":"******"}
almost 3 years ago · Santiago Gelvez
2 answers
Answer question

0

query return value is document not javascript object

  • Documents have a toObject method which converts the mongoose document into a plain JavaScript object.
  • first convert it to object and then use delete on each property you want

also with mongoose it can done more properly and automatically

User.methods.toJSON = function () {
  const user = this;
  const userObj = user.toObject();
  delete userObj.password;
  return userObj;
};

every time you send this document as response it convert to JSON and every time that JSON.strigify() is call on a document it call this toJSON() method

almost 3 years ago · Santiago Gelvez Report

0

Maybe you can also do

delete newUser._doc.password 
almost 3 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error