Node.js

Defining custom errors – NodeJS

Any well written piece of code should be defensive by nature with defensive error handling understanding that things could go wrong. Things would be great if we can define our own custom error classes which we can pass or throw in order to distinguish various errors. Custom error constructors helps in: ⇒   Identifying...

by Kushal Likhi
Tag: nodejs
23-Jun-2014

Node.js

_id With Mongoose

Let us take a very common use-case: "There will be a registration page for users, where users will provide their required details along with their picture”. Details would be saved to MongoDB while the pictures would be uploaded to Cloudinary or S3 with user unique id." Suppose we have User Schema as given below: [js] /* * Schema...

by Amit Kumar
Tag: nodejs
12-Apr-2014

Node.js

Async module for node.js

In our node js application, sometimes we have to execute functions either synchronously or asynchronously. To achieve so , we have a node js module "async" that helps us to push down our functions in an array, so that we can execute them as per the need of the project. Installation Part: Run this command to install the "async" module...

by Vibhor Kukreja
Tag: nodejs
03-Apr-2014

Node.js

Validation with Mongoose

In one of our Node.js projects, we used Mongoose module to interact with MongoDB. Mongoose provides us four types of built-in validation on schema as below: 1. Required: We can mark a field as required, which must be provided. 2. Limit: If field is type of Number in Schema, then we can restrict maximum and minimum value for that...

by Amit Kumar
Tag: nodejs
19-Feb-2014

Node.js

Singleton Pattern with JavaScript

Many a times, we face a requirement where we need only one object of a class to communicate across the application. Singleton Pattern comes into role in this scenario. Singleton is one of my favorite Design Patterns. Singleton pattern restricts us to initialize more than one object. We implement Singleton by creating a class, having a...

by Amit Kumar
Tag: nodejs
14-Feb-2014