Tech

Hide properties of Mongoose objects in Node.JS JSON responses

Many a times, we'll encounter a situation where we'll have to hide certain properties of Mongoose objects, especially when we're sending those objects in responses. For example, suppose you have an API endpoint like so: /user/:id. You will, obviously, send a user object as a response to this request. But there will be certain properties of the User schema (such as password) which you'd want to remove before sending the object in the response. Laravel developers can relate this to the $hidden array in Eloquent models, which automatically hides the given list of properties before sending the object in the response. There is no out-of-the-box solution for this in Mongoose. But it's pretty easy to achieve, even though it's a bit verbose. The solution is to define a custom .toJSON() metho...

Read More
Tech

Make Node.js debugging easier with colorful log messages

I’m working on my second project in Node.js. I kind of love it. I haven’t yet decided to find out how better it performs compared to apps written in other languages, such as PHP, or Java. But writing Node.js apps is fun, mostly because you can get npm packages for almost everything you need during development. This helps you concentrate on the business logic and not worry about writing basic boilerplate code. What’s the advantage? Well, you can write a POC/MVP app really quickly. Anyway, one thing I noticed while working on the previous Node.js app was that debugging is a bit difficult if you, like me, have an obsession with having proper log messages everywhere. So one of the first things I did when I was setting up this project was write a couple of middleware methods to log all the r...

Read More