How to return express api response in a structured manner

Viewed 32

i need help on this my express API endpoint. I need to get the users details response in a customise structured manner like

{
 "userId": "a38a8320-b750-41d1-a2d3-117dd286eeb5", //guid
 "firstName": "John", //string
 "lastName": "Doe",//string
 "accountId": "47cabec9-4e05-4744-b1c3-602a51dd86bc"//guid
}

My get endpoint is

router.get("/users", async (req, res) => {
  const users = await User.find();
  res.send(users)
});

The result I'm getting from postman below

[
    {
        "_id": "ba3136dd-94e8-48e6-89aa-1457c8bc540a",
        "firstName": "Segun",
        "lastName": "Ajibaye",
        "accountId": "8f061737-9500-4760-909d-9591c6c6c340",
        "__v": 0
    }
    
]         

                                 
1 Answers

You can use the map method to achieve that.

The callback you pass to the map method will be executed on every item inside the users array, and it will generate a new array with the result of each operation.

So your code could be like this:

router.get("/users", async (req, res) => {
  const users = await User.find();
  const mappedUsers = users.map(function (user) {
   return {
    userId: user._id,
    firstName: user.firstName,
    lastName: user.lastName,
    accountId: user.accountId
   }
  })
  res.send(mappedUsers)
});
Related