"Introduction to HTML and CSS (2016)" was retired on July 31, 2024. You are now viewing the recommended replacement.
Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
You have completed Understanding Express Middleware!
You have completed Understanding Express Middleware!
Preview
The `next()` function is important in Express middleware. Let's examine what it does and how to use it.
JavaScript Error Resources
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
Next is an important function in Express.
0:00
It signals the end of
a middleware function.
0:03
But it's not the only way to
end middleware, as we'll see.
0:06
Next also provides a way to handle errors.
0:10
Here's the state of the code as
we left it in the last video.
0:13
Let's see what happens when I remove
next from the first function.
0:17
I'll open a new tab and request our app.
0:23
The page is not loading,
0:27
that's because the app hangs when
middleware is not closed out with next.
0:29
The app is waiting indefinitely for
next to be called right here.
0:33
Express relies on the next function
to know when to move forward.
0:38
I'll replace next and
let's see the browser.
0:42
Great, it's working again.
0:47
There is another way to end a middleware
function besides calling next.
0:49
In fact let's look at this last line here.
0:53
This is middleware 2, next isn't here
because we're ending this function by
0:57
sending a response to
the client right here.
1:02
There are several ways to send a response.
1:06
Calling the send method is one way but
you can also call render
1:08
if you're using templates or JSON to
send JSON formatted data among others.
1:13
The main thing to remember is you have to
end middleware by either calling next or
1:19
sending a response.
1:23
Notice that apart from
the top three lines and
1:25
the bottom line,
this entire app is made of middleware.
1:28
There's one other thing I
wanna show you with next.
1:33
Applications always need
a way of handling errors,
1:36
users commonly request pages
that don't exist for example.
1:40
That constitutes a 404 error that your
app should be equipped to handle.
1:44
In Express,
1:50
you use next to throw an error by passing
an error object in as a parameter.
1:51
Express will immediately terminate and
handle the error.
1:57
Let's create our own error
in the first function.
2:00
Before I do that I'm going
to replace this bit of code
2:03
logged to the console and will log hello.
2:08
Down here, we'll log world.
2:15
Now I'll create a constant, And
2:23
use the error constructor
passing in a string.
2:29
If you haven't seen the syntax before.
2:35
Don't worry too much about it for
now, it's enough
2:37
to know we're creating a custom error
object and storing it in error.
2:40
You can use error objects to provide
helpful information when things aren't
2:45
working right in a program.
2:49
Look at the teacher's notes if you
want to read more about JavaScript's
2:51
error constructor.
2:55
Let's pass this error object
into next as an argument.
2:56
If we save and refresh the browser.
3:01
You can see that our error was thrown.
3:06
Let's just check the console.
3:09
Here you can see that.
3:11
Hello was logged before
the error was thrown.
3:12
World was never logged because
the program was interrupted by the error.
3:16
Let's get some practice with
middleware and a bigger application.
3:20
I'll see you in the next video where we'll
use middleware to process user input
3:24
from the client.
3:29
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up