Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialHarshay Raipancholi
Python Development Techdegree Student 11,521 PointsRoutes ; Help : function(request,Response)
Hi,
Can someone please explain to me - when do we actually pass the parameters request and response to this function? I'm confused, is 'response' the response coming back from the server?
2 Answers
Brian Anstett
5,831 PointsExpress uses series of "Middleware function" to handle and manipulate requests to the server as they move through the "Request-Response Cycle." Middleware functions have three arguments (four if it's a custom error handling middleware function), request
, response
, and next
. Note these are just parameters so you can name them whatever you want, this or their short hand req
, res
, next
is what you'll see most often. req
represents the request object TO THE SERVER. (https://expressjs.com/en/4x/api.html#req). res
represents the HTTP response send BACK TO THE CLIENT (https://expressjs.com/en/4x/api.html#res). next
is used to denote this middleware function has completed and to move on to the next middleware function. The idea of middleware for Express can be confusing but whether you knew it or not I'm sure you've already used it!
Let's take this example,
var express = require('express');
var app = express();
app.get('/heyshay', function(req, res){
res.send('hello world');
});
app.listen(3000);
In the above example, we tell Express to route all requests to the path '/heyshay' to this middleware function. We could access properties about the request, such as query string or path parameters from req.query.name
and req.param.name
. We can them set properties for the response back the client such as a status code or a response string with res.status(200).send("HEY SHAY")
For more information checkout the Express docs, they're really really good docs. https://expressjs.com/en/4x/api.html
Caleb Kleveter
Treehouse Moderator 37,862 PointsThat is correct. The route handler (which is the type of method you are asking about) get called when the route is accessed by the client. The request from the client and the response that will be returned to the client are then passed in the the route handler. Once the response is closed, it is sent to the client. Hope that makes sense!
Harshay Raipancholi
Python Development Techdegree Student 11,521 PointsHarshay Raipancholi
Python Development Techdegree Student 11,521 PointsThanks!