1 00:00:00,150 --> 00:00:02,190 Woo och, very enthusiastic. 2 00:00:02,190 --> 00:00:07,860 Now we're actually getting to the web app and writing code in this section, in this video we installed 3 00:00:07,860 --> 00:00:08,400 Express. 4 00:00:08,400 --> 00:00:14,070 Now we're ready to go, but we need to discuss what we're going to make with our first most basic pass 5 00:00:14,070 --> 00:00:14,790 at a web app. 6 00:00:15,210 --> 00:00:21,300 So here's a nice little hopefully you think it's nice a little diagram I made of a typical request and 7 00:00:21,300 --> 00:00:23,820 response cycle that we'll be working with in Express. 8 00:00:23,820 --> 00:00:25,050 So here's a computer. 9 00:00:25,290 --> 00:00:27,900 Let's say it's blues, my cats. 10 00:00:27,900 --> 00:00:34,140 And then there's our Express app that we'll be creating, which is node JavaScript and blue types in 11 00:00:34,140 --> 00:00:35,100 the name of our app. 12 00:00:35,100 --> 00:00:39,240 Let's just say it's WW dot app.com g hat center. 13 00:00:41,630 --> 00:00:46,970 A request is sent to our Express app saying, Hey, I would like the slash page. 14 00:00:46,970 --> 00:00:52,820 And Slash right here is referring to the the URL that we're asking for the path after. 15 00:00:52,820 --> 00:00:57,140 So if you notice, I'm on web dev slides dot com. 16 00:00:58,240 --> 00:01:05,590 This is basically like our entire Express app, but we'll be creating and then individual pages we ask 17 00:01:05,590 --> 00:01:08,830 for by varying what comes after the slash. 18 00:01:08,830 --> 00:01:13,090 So if you take a look, if you never noticed that before the path that comes after a slash and a web 19 00:01:13,090 --> 00:01:16,840 page, that is usually what dictates what content you see. 20 00:01:16,840 --> 00:01:22,120 So when we don't ask for anything, if I just go to a web dev slides, that's going to be the home page. 21 00:01:22,120 --> 00:01:27,400 And the way that we kind of write that is the path is slash just forward, slash nothing. 22 00:01:28,500 --> 00:01:28,920 Okay. 23 00:01:28,920 --> 00:01:29,910 So hi there. 24 00:01:29,910 --> 00:01:31,200 I'd like the home page, please. 25 00:01:31,560 --> 00:01:33,870 And then the express app has to figure out what to do. 26 00:01:34,260 --> 00:01:35,100 So that's sure. 27 00:01:35,100 --> 00:01:35,910 Here you go. 28 00:01:36,450 --> 00:01:39,870 And it sends back our super simple hello from our web app. 29 00:01:39,870 --> 00:01:40,590 That's it. 30 00:01:40,590 --> 00:01:42,090 It just is a one line of text. 31 00:01:42,090 --> 00:01:43,290 It says hello from a web app. 32 00:01:43,290 --> 00:01:45,630 No colors, no animations, nothing like that. 33 00:01:45,960 --> 00:01:48,240 And there's no logic involved to start. 34 00:01:48,570 --> 00:01:52,470 Every time blue goes to this page, she gets hello from our web app. 35 00:01:52,740 --> 00:01:58,050 Now what we're working towards is creating dynamic pages that will vary, that will say, hey, we have 36 00:01:58,050 --> 00:02:03,030 518 users, or here's a list of all of our users in the database or something like that. 37 00:02:03,030 --> 00:02:07,620 That varies depending on when the user asks for it, who the user is. 38 00:02:07,620 --> 00:02:09,210 There's a whole bunch of different conditions. 39 00:02:09,210 --> 00:02:11,009 So that's the flow we're trying to get. 40 00:02:11,009 --> 00:02:17,880 We send a request asking for a particular thing, and our Express app has to figure out, one, how 41 00:02:17,880 --> 00:02:18,840 to handle that. 42 00:02:19,170 --> 00:02:21,720 How does our Express app know what we're asking for? 43 00:02:22,230 --> 00:02:24,810 Second of all, how does it respond? 44 00:02:25,020 --> 00:02:29,700 So it's these two arrows that are really the important part, the request and the response. 45 00:02:30,300 --> 00:02:31,530 So let's get started. 46 00:02:32,400 --> 00:02:33,750 Here's what the code looks like. 47 00:02:33,750 --> 00:02:38,040 So there's a little bit here that we have well, we haven't seen any of this. 48 00:02:38,340 --> 00:02:39,930 We've seen requiring. 49 00:02:39,930 --> 00:02:44,310 So all we're doing is importing express and saving it into an express variable. 50 00:02:44,580 --> 00:02:50,400 Then we're doing this weird thing that we haven't seen where we're actually executing the entire express 51 00:02:51,000 --> 00:02:55,710 package that we just imported, and we're saving that to another variable called app. 52 00:02:55,710 --> 00:03:01,410 Basically, these are the first two steps of any express application, copy and paste them every time. 53 00:03:01,410 --> 00:03:02,430 I mean, they're not very long. 54 00:03:02,430 --> 00:03:06,900 So you could just type it, but you can treat them as just cookie cutter every time. 55 00:03:07,620 --> 00:03:13,290 Then every time we refer to this app like we have here app, get an app. 56 00:03:13,500 --> 00:03:16,830 Listen, both of those are referring to this app. 57 00:03:16,830 --> 00:03:22,260 So any time we work with Express, it's going to be a lot of app, not something app about get out, 58 00:03:22,260 --> 00:03:28,350 get app out, all these other things which on the documentation you can see over here we have all these 59 00:03:28,350 --> 00:03:34,410 app delete app that enable app get app list and app params, all these different things. 60 00:03:34,410 --> 00:03:35,670 They all start with app. 61 00:03:36,150 --> 00:03:40,620 Of course, if we name this variable something different Apple, then this would be Apple. 62 00:03:40,830 --> 00:03:41,400 Get an apple. 63 00:03:41,580 --> 00:03:44,340 Listen, so so far this doesn't do anything. 64 00:03:44,910 --> 00:03:46,800 These are just two lines to require stuff. 65 00:03:46,800 --> 00:03:49,890 The magic is really here and here. 66 00:03:50,250 --> 00:03:51,960 First thing is what's known as a root. 67 00:03:51,960 --> 00:03:55,890 This is the bread and butter of express, pretty much every web framework. 68 00:03:55,890 --> 00:04:05,280 What it does is this code inside is only triggered whenever a incoming request is made to this path. 69 00:04:05,970 --> 00:04:08,790 So we're basically defining the code that runs. 70 00:04:08,790 --> 00:04:13,950 When a user asks for a home page where the path is nothing, it's just slash and what are we going to 71 00:04:13,950 --> 00:04:14,460 do? 72 00:04:14,490 --> 00:04:18,720 Well, we are going to send this is a special method from Express. 73 00:04:19,050 --> 00:04:20,519 Hello from our web app. 74 00:04:20,940 --> 00:04:23,550 And Rez is coming from here. 75 00:04:23,550 --> 00:04:24,710 There's a lot to take in. 76 00:04:24,720 --> 00:04:29,850 I know Rez is the response object request is the incoming request. 77 00:04:29,850 --> 00:04:32,760 So every route there is a callback. 78 00:04:33,390 --> 00:04:35,550 Just like when we were working with my SQL. 79 00:04:35,550 --> 00:04:40,170 A callback is code that runs after something happens or at a later date. 80 00:04:40,170 --> 00:04:44,790 So this code only runs whenever a request is hit to slash. 81 00:04:45,210 --> 00:04:49,440 So eventually we'll have code where we have five or six routes, different web pages. 82 00:04:49,440 --> 00:04:53,490 We want to run different code depending on the web page that's being asked for. 83 00:04:53,490 --> 00:04:54,900 So this is how we do it. 84 00:04:55,170 --> 00:05:00,300 This is basically saying if a request comes in for slash run this code, we could have another one down 85 00:05:00,300 --> 00:05:06,840 here that says if a request comes in for a slash log out or slash log in, then do something else. 86 00:05:06,840 --> 00:05:08,130 Show the login page. 87 00:05:08,130 --> 00:05:09,360 So that's the first bit. 88 00:05:09,360 --> 00:05:16,170 Then every route has a function, a callback with two arguments, a request and a response request again 89 00:05:16,170 --> 00:05:17,550 is the incoming request. 90 00:05:17,550 --> 00:05:23,400 So if we wanted information from the, the incoming request from the user, which we'll be working with 91 00:05:23,400 --> 00:05:30,930 later, when a user types their email into the form to sign on to our wait list, that information is 92 00:05:30,930 --> 00:05:31,800 sent to us. 93 00:05:31,800 --> 00:05:37,710 And so we'll need to work with the request coming from the user into this arrow that will contain the 94 00:05:37,710 --> 00:05:38,600 information. 95 00:05:38,610 --> 00:05:38,970 Hello. 96 00:05:38,970 --> 00:05:43,080 I'd like to add my email blue at gmail.com to your database. 97 00:05:43,380 --> 00:05:46,560 And so then with the request we'd be able to pull it out of there. 98 00:05:47,070 --> 00:05:49,440 The response is what we're sending back. 99 00:05:49,470 --> 00:05:51,450 It's this arrow going that way. 100 00:05:51,450 --> 00:05:56,100 And so that's why Rez send hello from our web app. 101 00:05:56,100 --> 00:05:58,470 We'll send this response. 102 00:05:59,310 --> 00:06:01,410 Of course, you don't have to name it Rec and rez. 103 00:06:01,410 --> 00:06:02,940 You could call this request in response. 104 00:06:02,940 --> 00:06:06,180 You could call it R one and R two, apple and orange. 105 00:06:06,750 --> 00:06:08,940 All that matters is that you refer to it the same. 106 00:06:09,510 --> 00:06:14,940 And then we have the second component, and this is also kind of cookie cutter. 107 00:06:14,970 --> 00:06:16,860 You'll have this in every app app. 108 00:06:17,100 --> 00:06:17,820 Listen. 109 00:06:18,150 --> 00:06:20,670 And all that this does is starts a server. 110 00:06:20,670 --> 00:06:26,820 So this starts the server going we have to tell it what port which on cloud nine will always be using 111 00:06:26,820 --> 00:06:33,000 8080 and then if we want we can give it a callback function and this is just a line of code that will 112 00:06:33,000 --> 00:06:35,040 run once we start our server. 113 00:06:35,040 --> 00:06:39,510 So it will just say in our terminal, hey, your app's listing on port 80, 80, you don't have to have 114 00:06:39,510 --> 00:06:39,990 this. 115 00:06:40,260 --> 00:06:43,020 So let's go over to cloud nine. 116 00:06:43,770 --> 00:06:46,950 And the first thing I'm going to do is make a new file. 117 00:06:47,400 --> 00:06:50,340 So instead of join us new file. 118 00:06:51,030 --> 00:06:53,160 And it's going to be RPGs. 119 00:06:54,970 --> 00:06:58,780 And I'm going to just start by requiring express just like we saw 120 00:07:02,110 --> 00:07:09,760 then I'm going to do var app equals express which is referring to this executed as a function. 121 00:07:09,910 --> 00:07:11,320 So we have app there. 122 00:07:11,320 --> 00:07:12,580 Let's just see if it works. 123 00:07:12,580 --> 00:07:13,690 Nothing will happen. 124 00:07:13,930 --> 00:07:18,640 We may get an error if we didn't install express, but we did. 125 00:07:18,640 --> 00:07:23,800 So everything's good then let's start actually at the bottom with our app. 126 00:07:24,010 --> 00:07:30,670 Listen and we tell it the port, which is if you're not familiar with the idea of ports, think of it 127 00:07:30,670 --> 00:07:32,320 as the entry or exit point. 128 00:07:32,320 --> 00:07:33,040 On a computer. 129 00:07:33,040 --> 00:07:36,910 You can have 20, 50, 100 different ports for different things going on. 130 00:07:36,910 --> 00:07:42,070 At the same time, you may have had to work with ports if you ever had to mess with a firewall that 131 00:07:42,070 --> 00:07:44,080 was blocking something you didn't want it to block. 132 00:07:44,080 --> 00:07:48,490 Or if you work at an office where they I don't know, they don't allow you to go to certain websites 133 00:07:48,490 --> 00:07:50,230 that's running on a certain port. 134 00:07:51,040 --> 00:07:51,700 Anyways. 135 00:07:51,970 --> 00:07:55,660 APT listen A.D. 80 and we could just leave it at that like this. 136 00:07:56,020 --> 00:08:02,230 But if we do that and I start it up, notice my cursor has gone to the same thing that happened with 137 00:08:02,230 --> 00:08:04,210 the MySQL connection. 138 00:08:04,210 --> 00:08:06,820 When we didn't end the connection, it just hanging. 139 00:08:06,820 --> 00:08:13,450 And that's because I started the server it's listening and port 8080 to see any incoming requests but 140 00:08:13,450 --> 00:08:19,690 we're not doing anything and it's also just not very it's not a great experience to just see a blank 141 00:08:19,690 --> 00:08:29,390 cursor there so we can just add this blank callback and it will just console.log server running on 8080 142 00:08:30,460 --> 00:08:33,370 and it's just a nice message for us developers to see. 143 00:08:33,370 --> 00:08:39,760 So now if I do it you can see of course that we get console.log server running on 8080 and that's just 144 00:08:39,760 --> 00:08:44,350 because this code runs whatever we put in here, we'll run only once the server starts. 145 00:08:44,350 --> 00:08:45,550 So that's the first thing. 146 00:08:45,550 --> 00:08:48,580 But now we have the task of actually writing the code. 147 00:08:48,580 --> 00:08:52,180 So we have our server, it's going, but we can't actually reach it. 148 00:08:52,180 --> 00:08:53,680 We can't do anything with it. 149 00:08:53,680 --> 00:08:56,080 I don't have anything to respond with. 150 00:08:56,080 --> 00:08:57,940 So actually what I just said is kind of a lie. 151 00:08:57,970 --> 00:09:01,930 We can reach it, we could request it, but nothing would ever come back. 152 00:09:03,070 --> 00:09:05,920 And actually if I try and preview it right now. 153 00:09:05,920 --> 00:09:10,120 So to do that, we can click on preview preview running application. 154 00:09:10,390 --> 00:09:15,940 This is hitting this server, but we're not getting any response. 155 00:09:17,490 --> 00:09:19,290 So I'm going to just leave it here for now. 156 00:09:19,650 --> 00:09:20,910 We'll come back to that. 157 00:09:21,420 --> 00:09:24,210 We'll know that our app is working if we get a response here. 158 00:09:25,440 --> 00:09:34,260 To do that, we just have to do our app get and then the you are the path which is slash function request 159 00:09:34,260 --> 00:09:35,220 response. 160 00:09:36,610 --> 00:09:41,650 And then in here we put some code so we could start with just a console.log. 161 00:09:43,730 --> 00:09:47,120 Someone requested us just like that. 162 00:09:48,620 --> 00:09:49,800 What do you think will happen? 163 00:09:49,820 --> 00:09:51,860 First thing I have to do is restart the server. 164 00:09:51,860 --> 00:09:53,510 Anytime you change this code in here. 165 00:09:53,510 --> 00:09:55,190 The server was already running. 166 00:09:55,190 --> 00:09:56,990 We need to save the file and restart. 167 00:09:57,110 --> 00:10:02,030 But now if I try and request slash so I'll just hit enter here. 168 00:10:02,570 --> 00:10:03,740 Notice what happens. 169 00:10:03,920 --> 00:10:07,070 Says someone requested us because this code ran. 170 00:10:07,430 --> 00:10:09,950 But over here we still don't see anything. 171 00:10:09,950 --> 00:10:13,280 So console.log is only printing to the console here the terminal. 172 00:10:13,970 --> 00:10:22,610 So now what I'm going to do is open a new tab and put this in that tab so that we have our app and then 173 00:10:22,610 --> 00:10:23,900 our terminal down here. 174 00:10:23,900 --> 00:10:27,050 And I'm going to close this one just to make more space. 175 00:10:27,050 --> 00:10:28,120 It's the same thing. 176 00:10:28,280 --> 00:10:31,520 Notice, though, every time I hit enter, I get someone requested us. 177 00:10:31,520 --> 00:10:37,400 But if I tried to go to slash log out or something that doesn't exist, I don't get someone requested 178 00:10:37,400 --> 00:10:39,980 us because this code is only happening. 179 00:10:39,980 --> 00:10:43,160 It's only firing off when we're requesting a slash. 180 00:10:43,340 --> 00:10:48,260 And you might be wondering about the get part if you're not familiar with HTTP requests, there's a 181 00:10:48,260 --> 00:10:49,280 couple of different types. 182 00:10:49,280 --> 00:10:51,500 Different verbs get in post are what? 183 00:10:51,500 --> 00:10:53,960 We'll be working with a get request though. 184 00:10:53,990 --> 00:10:56,690 Think of it as just asking to see information. 185 00:10:56,690 --> 00:10:58,790 You're not sending any data with it. 186 00:10:59,120 --> 00:11:04,040 So when we are asking for our home page of join us, we're just trying to see information. 187 00:11:04,040 --> 00:11:09,650 It's a get request, but when we are trying to join, we are sending an email and that is going to be 188 00:11:09,650 --> 00:11:10,400 a post request. 189 00:11:10,400 --> 00:11:11,660 We'll get there in a little bit. 190 00:11:11,660 --> 00:11:15,500 I know it's a lot of stuff and overwhelming if you've never done web development. 191 00:11:15,500 --> 00:11:21,620 So hopefully you understand this is not a web dev course, but there are some great ones out there and 192 00:11:21,620 --> 00:11:26,480 I highly recommend if you're curious and you are enjoying this part that you continue down that path. 193 00:11:27,050 --> 00:11:28,220 Okay, enough of that. 194 00:11:28,220 --> 00:11:34,850 So rather than just console.log, there's this other thing we can do which is response send, and then 195 00:11:34,850 --> 00:11:41,420 we can put any string in here like you've reached the home page. 196 00:11:42,350 --> 00:11:43,730 I'm sorry about that siren. 197 00:11:43,760 --> 00:11:46,220 It's like 100 degrees in San Francisco today. 198 00:11:46,430 --> 00:11:46,940 That's a lie. 199 00:11:46,940 --> 00:11:48,080 It's 90 degrees. 200 00:11:48,080 --> 00:11:49,610 I have to have the window open. 201 00:11:50,600 --> 00:11:50,990 Okay. 202 00:11:51,950 --> 00:11:53,150 Hopefully it's not too loud. 203 00:11:53,270 --> 00:11:54,950 Now we need to restart the server. 204 00:11:56,560 --> 00:11:59,440 This time we now have some different code. 205 00:11:59,470 --> 00:12:07,150 Same thing if we hit Slash on this app that is running on 8080 which in cloud nine this is our URL. 206 00:12:07,180 --> 00:12:08,350 Yours will be different. 207 00:12:08,350 --> 00:12:12,310 You have a unique URL you need to access, but this is where your app will be running. 208 00:12:12,880 --> 00:12:17,260 Just like when we first installed Node and I showed you that chat app into same idea. 209 00:12:17,260 --> 00:12:20,260 This is where your app runs by default. 210 00:12:21,190 --> 00:12:27,700 So now all we need to do is hit that page, but we need to ask for slash rather than slash logout. 211 00:12:28,630 --> 00:12:30,610 If I do slash logout again, I get nothing. 212 00:12:31,300 --> 00:12:36,460 But if I just do slash or nothing, we get our message. 213 00:12:36,460 --> 00:12:40,120 You've reached the home page and that is our most basic web app. 214 00:12:40,150 --> 00:12:42,100 Of course, you could change this text. 215 00:12:42,610 --> 00:12:45,820 Something that people ask a lot is Can you have two reasons? 216 00:12:45,820 --> 00:12:46,690 And the answer is no. 217 00:12:46,720 --> 00:12:48,090 You can only have one. 218 00:12:48,100 --> 00:12:53,230 Every route is going to respond with one thing, but the real answer is that you're usually not going 219 00:12:53,230 --> 00:12:54,520 to use resend. 220 00:12:54,550 --> 00:12:57,280 You'll instead be responding with files. 221 00:12:57,280 --> 00:13:05,260 So we'll have a file of HTML to respond with our nice formatted page with style and fonts and colors. 222 00:13:05,260 --> 00:13:08,290 For now, this is a very basics, so we'll stop here. 223 00:13:08,290 --> 00:13:12,640 You can feel free to move on to the next video where we add more routes, but at the very end I'll take 224 00:13:12,640 --> 00:13:18,250 some time to review if anyone is curious or anyone feels like you need more review of how this works. 225 00:13:18,250 --> 00:13:23,260 So we started by requiring EXPRESS, which is the library of the framework we installed. 226 00:13:23,440 --> 00:13:26,200 Then we execute it and save it to our app variable. 227 00:13:26,200 --> 00:13:28,720 And really there's a lot of magic happening there. 228 00:13:28,720 --> 00:13:30,010 That's what a framework does. 229 00:13:30,010 --> 00:13:35,710 It takes care of stuff in the background, but now what we've done is first things first. 230 00:13:35,710 --> 00:13:42,400 We started up our server Atlas in 8080 and every time we do that our server starts running. 231 00:13:42,400 --> 00:13:49,450 And basically that is this block right here represented by this block, and it's just sitting here listening. 232 00:13:49,450 --> 00:13:50,980 It's a patient server. 233 00:13:51,010 --> 00:13:57,430 Nobody might talk to it for years or maybe ever, but as soon as someone sends a request and in our 234 00:13:57,430 --> 00:14:03,630 case the request goes to this URL node and my SQL learn was called C non users at IO. 235 00:14:03,670 --> 00:14:09,160 Yours will be different, but this is where I make a request to and that corresponds to our server. 236 00:14:09,160 --> 00:14:10,360 We started down here. 237 00:14:10,390 --> 00:14:15,700 So there's an invisible connection here that's kind of taken care of for us by cloud nine or by any 238 00:14:15,700 --> 00:14:21,010 computer, although your URL would be different if you weren't using Cloud nine, of course. 239 00:14:21,280 --> 00:14:27,340 But whatever we're running here, our server, it's waiting and listening for request coming in. 240 00:14:27,520 --> 00:14:33,550 Then we write code that differentiates between something like Log out or let's do log in. 241 00:14:35,310 --> 00:14:38,460 We don't have any code expecting log in. 242 00:14:38,460 --> 00:14:41,280 So that's why we get an error it says cannot get log in. 243 00:14:41,280 --> 00:14:44,880 I don't it's basically our server saying I don't know what you're talking about. 244 00:14:45,300 --> 00:14:48,300 All that our app knows about is Slash. 245 00:14:48,660 --> 00:14:50,370 That's the only thing it will respond with. 246 00:14:50,370 --> 00:14:51,330 Oh, I know that. 247 00:14:51,330 --> 00:14:52,280 Let me give you that. 248 00:14:52,290 --> 00:14:53,880 It's you've reached the home page. 249 00:14:54,060 --> 00:14:55,560 Otherwise we get. 250 00:14:57,040 --> 00:15:02,420 We cannot get whatever we do, but we do have this one case where it works. 251 00:15:03,540 --> 00:15:04,500 The homepage. 252 00:15:06,280 --> 00:15:13,330 And again, the typical terminology for this is the root, root, the home, the root, empty root, 253 00:15:13,330 --> 00:15:14,530 basically slash. 254 00:15:14,740 --> 00:15:16,330 So get slash. 255 00:15:16,450 --> 00:15:21,580 This code runs and all this code does is it responds with you've reached the home page. 256 00:15:21,610 --> 00:15:27,490 One thing that's interesting to take a look at, there's a lot here, but if I do a console.log request. 257 00:15:28,540 --> 00:15:34,180 This will contain all the information from the incoming request from this arrow. 258 00:15:35,530 --> 00:15:37,060 There's going to be a lot of stuff in there. 259 00:15:37,300 --> 00:15:46,900 So if we take a look, try it again and I make a request, I'll refresh it by clicking over here. 260 00:15:47,230 --> 00:15:49,270 We got printed out this giant thing. 261 00:15:49,360 --> 00:15:52,540 This is all the information contained in that request. 262 00:15:53,350 --> 00:15:56,450 So all of this is put together by Express. 263 00:15:56,470 --> 00:15:57,560 It's handled for us. 264 00:15:57,580 --> 00:15:59,980 Let's see if there's anything interesting to take a look at. 265 00:16:00,160 --> 00:16:05,800 Basically, I can't find anything terribly interesting or that it would be very useful without me having 266 00:16:05,800 --> 00:16:07,270 to explain a ton of other stuff. 267 00:16:07,270 --> 00:16:12,220 But this contains all the information and really you only get one or two things usually that you care 268 00:16:12,220 --> 00:16:12,950 about in here. 269 00:16:12,970 --> 00:16:15,970 This is all behind the scenes stuff that it works with. 270 00:16:16,180 --> 00:16:21,640 With that said, when we make our request that is sending our email, when we type it into a form and 271 00:16:21,640 --> 00:16:27,130 hit submit, that email will be contained in a request somewhere and we'll need to pull it out, which 272 00:16:27,130 --> 00:16:28,510 we'll get there at some point. 273 00:16:28,750 --> 00:16:29,530 All right. 274 00:16:29,560 --> 00:16:33,220 Next up, we're continuing on with this, but we're going to add a couple other routes.