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

177
Views
How to make it more cleaner and efficient and what are the practices to follow?

I'm building a user auth in the backend. I created a post method for registering a new user

userRouter.post("/", expressAsyncHandler(async (req, res) =>
{
  try {
        const { name, email, password } = req.body;
        const userExists = await User.findOne({ email });
        if (userExists) {
          res.status(400).json({ message: "User already exists" });
        }
        const user = await User.create({
          name,
          email,
          password,
        });

        if (user) {
          res.status(201).json({
            data: {
              _id: user._id,
              name: user.name,
              email: user.email,
              token: generateToken(user._id),
            },
          });
        } else {
          res.status(400).json({ message: "Registration failed" });
        }
  } catch (error) {
      res.status(500).json({message:error.message})
  }
}))

It is working but shows

Cannot set headers after they send it to the client

I'm feeling a little uncomfortable with this code. so how can I make the code cleaner and more efficient? what are the best practices to follow?

Thanks in advance :)

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

two possible error.

  1. if you use middleware that add status header.
  2. "if (user) { res.status(201).json({....blabla" after status 201, if json fails then catch also add status(500)
about 4 years ago · Juan Pablo Isaza Report

0

Cannot set headers after they send it to the client

It happens when you are trying to set headers again. And in your case, it might be happening when you send the response and it breaks you again send or reset headers i.e status code in the catch block.

You can do one thing by adding console.log before the responses you are sending to debug it and you will be able to see what is causing it.

Also, you can check this link for more details before directly jumping into debugging.

about 4 years ago · Juan Pablo Isaza Report

0

Because if your API run successfully then you have to put (200) instead of (201) because if your API sends a request then the API response code is 200.

enter image description here

see in the image if you send a request in postman they also give status 200

I hope it's working for you.

about 4 years ago · Juan Pablo Isaza 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!