This Edureka "Node.js Express tutorial" will help you to learn the Node.js express fundamentals with examples. Express.js is flexible and minimal node.js web application framework that provides robust set of features to develop mobile and web applications. It facilitates the rapid development of node.js applications. Below are the topics covered in this tutorial:
1) Why Express.js?
2) What is Express.js?
3) Express Installation
4) Express Routes
5) Express Middlewares
4. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
What is Node.js ?
▪ Node.js is an open source runtime environment for server-side and networking applications and is single threaded.
▪ Uses Google JavaScript V8 Engine to execute code.
▪ It is cross platform environment and can run on OS X, Microsoft Windows, Linux and FreeBSD.
▪ Provides an event driven architecture and non blocking I/O that is optimized and scalable.
6. www.edureka.co/mastering-node-jsEDUREKA ANGULARJS CERTIFICATION TRAINING
HTTP
Import Required Modules
Creating Server
Parse the fetched URL to get pathname
Request file to be read from file system
Creating Header with content type as text or HTML
Generating Response
Listening to port: 3000
▪ To use the HTTP server and client one must require('http')
▪ The HTTP interfaces in Node.js are designed to support many features of the protocol
8. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
What is Express.js?
▪ Web application framework for Node.js
▪ Light-weight and minimalist
▪ Provides boilerplate structure & organization for your web-apps
11. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Routes
Routing refers to the definition of application end points (URIs) and how they respond to client requests
A route method is derived from one of the HTTP methods, and is attached to an instance of the express class
Route
Methods
Importing Express Module
Creating Express Instance
Callback function
Path (route)
HTTP request
HTTP response
12. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Routes
app.all(), special routing method (not derived from any HTTP method)
app.all() is used for loading middleware functions at a path for all request methods
13. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Route Path
• Route paths, in combination with a request
method, define the endpoints at which requests
can be made
• Route paths can be strings, string patterns, or
regular expressions.
• The characters ?, +, *, and () are subsets of their
regular expression counterparts.
14. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Route Handlers
Provide multiple callback functions which behave like middleware to handle a request
Exception -> Callbacks might invoke next('route') to bypass the remaining route callbacks
A single callback function can handle a route
Next to bypass the remaining route callbacks
Used to impose pre-conditions on a route, then pass control to subsequent routes
(if no reason to proceed with the current route)
15. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Route Handlers
Route handlers can be in the form of a function, an array of functions, or combinations of both
Creating
Functions
Router handlers in form of functions &
array of functions
16. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Response Methods
• Methods on the response object (res) for
sending a response to the client
• Terminate the request-response cycle
• If none of these methods are called, the
client request will be left pending
Method Description
res.download() Prompt a file to be downloaded.
res.end() End the response process.
res.json() Send a JSON response.
res.jsonp() Send a JSON response with JSONP support.
res.redirect() Redirect a request.
res.render() Render a view template.
res.send() Send a response of various types.
res.sendFile() Send a file as an octet stream.
res.sendStatus()
Set the response status code and send its string
representation as the response body.
17. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Routes (app.route)
• Create chainable route handlers for a route path by using app.route()
• Path is specified at a single location
• Creating modular routes is helpful, as it reduces redundancy and typos
Creating chainable route
GET Method
POST Method
PUT Method
18. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Routes (express.Router)
Creates a router
as a module
Loads a
middleware
function
Defines
Home Route
Define About
Route
➢ Router class to create modular,
mountable route handlers
➢ A Router instance is a complete
middleware and routing system
20. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Middleware
Middleware functions are functions that have access to the request object (req), the response object (res), and
the next function in the application’s request-response cycle.
next function is invoked to executes the middleware succeeding the current middleware
ServerClients
Request A
Response A
Request B
Response B
Request C
Response C
Request
Object
Response
Object
Next
function
Function B
Middleware
21. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Middleware
• Execute any code
• Make changes to the request and the response objects
• End the request-response cycle
• Call the next middleware in the stack
Middleware functions performs the following tasks:
22. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Middleware
HTTP method
Path (route)
HTTP request argument
HTTP response argument
Callback argument to the
middleware function
23. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Middleware
Uses the requestTime middleware
function
24. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Application-level middleware
Bind application-level middleware to an instance (app.use() & app.METHOD())
25. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Router-level middleware
• Router-level middleware binds to an instance of express.Router()
• Works in the same way as application-level middleware
Router middleware i.e.
executed for every router
request
Router middleware i.e.
executed for given path
26. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Error-handling middleware
• Error-handling middleware always takes four arguments: (err, req, res, next)
• next object will be interpreted as regular middleware and will fail to handle errors
• Define error-handling middleware functions in the same way as other middleware functions
Error Object
Request Object
Response Object
Next Object
27. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Built-in middleware
• Except express.static, all of the middleware functions that were previously bundled with Express are now in separate modules
• express.static function is responsible for serving static assets such as HTML files, images, etc.
serving static assets
28. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Independent Module
These middleware and libraries are officially supported by the Connect/Express team:
Modules Description
body-parser Parse incoming request bodies in a middleware before your handler
compression Node.js compression middleware
connect-timeout Times out a request in the Express application framework
cookie-parser Parse Cookie header and populate req.cookies with an object keyed by the cookie names
cookie-session Simple cookie-based session middleware
csurf Node.js CSRF protection middleware
errorhandler Error handler middleware
express-session Create a session middleware
method-override Create a new middleware function to override the req.method property with a new value
morgan Create a new morgan logger middleware function
response-time Creates a middleware that records the response time for requests in HTTP servers
serve-favicon Middleware for serving a favicon
serve-index Serves pages that contain directory listings for a given path
serve-static Middleware function to serve files from within a given root directory
vhost Middleware function to hand off request to handle, for the incoming host
30. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Template Engines with Express
• Template engine enables you to use static template files in your application
• Easier to design an HTML page
• Popular template engines: Pug, Mustache, and EJS
• Express application generator uses Jade as its default
Declaring HTML
template using Jade
Rending Template
inside the application
31. EDUREKA NODE.JS CERTIFICATION TRAINING www.edureka.co/mastering-node-js
Template Engines with Express
To render template files, set property in app.js :
• views, the directory where the template files are located
• view engine, the template engine to use