1) What is ExpressJs?
Express Js is a framework for node.js which is light-weight and fast. It is used to develop web and mobile applications.
2) What are the features of ExpressJs?
Following are the features of Expressjs:
- It allows middleware set up to respond HTTP Requests
- It defines routing table which is used to achieve action based on HTTP Method and URL.
- It allows dynamically generate the HTML Pages based on passing arguments to the templates.
- It follows MVC architecture for web application.
3) What is middleware in ExpressJs?
Middleware is a function that accesses the request object (req), response object (res), and access next middleware function in application's request-response cycle. The next middleware function is represented by variable called 'next'.
Syntax:
function(req,res,next){ }
4) Can middleware is able for error handling? Explain error handling in ExpressJs.
Middleware is able to handle error handling in ExpressJs. This can be done by passing one extra error-handling (err) parameter in middleware function.
Syntax:
function(err,req,res,next){ }
5) What is 'next' in ExpressJs?
'next' is a parameter which is passed in middleware function to pass control to next middleware.
function(req,res,next){ }
6) What is routing?
Routing define how an application responds over client request to a particular endpoint (URI). Endpoint is specially a path and any one of HTTP request methods (GET, POST, etc).
Following structure is used for routing:
app.METHOD(PATH,HANDLER)
Note: METHOD is Http request method (in lowercase),
PATH is uri on server,
HANDLER is function name.
7) How to configure properties in ExpressJs application?
We can configure properties in two ways:
-
- With Process.env.
- Create a file with extension '.env' inside the project folder.
- Add all the properties in '.env' file.
- In server.js any of properties can use:
var host=process.env.APP_HOST;
app.set('host',host);
logger.info(app.get('host');
Create a file 'config.json' inside 'config' folder of the project folder.
Add config properties in 'config.json' file.
Use require keyword to access the 'config.json' file.
var config =require('./config/config.json');
8) How debugging are done in ExpressJs?
Different operating system uses different commands:
Windows: set DEBUG = express:* & node index.js
Linux: $ DEBUG = express:* & node index.js
9) Define templating in ExpressJs?
Templating are powerful engine used for removing the cluttering of our server code with HTML. Some of the templates which are with ExpressJs are:
10) What is cookie and what it does?
Cookie is a data sent from server and stores on the client side. It keeps the information of user's actions.
These are some following purpose of using cookie:
- Session management
- User tracking
- Personalization
11) How to use cookies in ExpressJs?
Cookies are used in ExpressJs by installing 'cookie-parser' middleware.
To install cookie-parser we use command as:
npm install --save cookie-parser
To set new cookie in our application, we define a new route.
app.get('/',function(req, res){
res.cookie('name','express').send('cookie set')
});
12) How to delete cookie in ExpressJs?
The
clearCookie method is used to delete cookies in ExpressJs.
clearCookie('cookie_name');
app.get('/clear_cookie_temp',function(req,res)){
clearCookie('temp');
res.send('cookie temp is cleared');
});
13) How to handle 404 errors or redirect error to another page?
We use the following code in
server.js file to redirect 404 errors to another page in ExpressJs.
app.use(function(req, res, next){
res.status(404).json({errorCode: 404, errorMessage: requested resources not foundâ€});
});
14) What is scaffolding?
Scaffolding is a tool, which set up all required public directory, add middleware, create separate route file etc (set up skeleton for web application). So that we can directly get started building our application.
Yeoman is scaffolding tool built for Node.js.
15) How to get the full url In ExpressJs?
var port = req.app.settings.port || cfg.port;
res.locals.requested_url = req.protocol + '://' + req.host + ( port == 80 || port == 443 ? '' : ':'+port ) + req.path;