Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,070 --> 00:00:03,610
We just learned a lot about MVC,
2
00:00:03,610 --> 00:00:06,447
and so lets now very quickly refactor our code
3
00:00:06,447 --> 00:00:09,763
in order to fit that architecture a bit better.
4
00:00:11,370 --> 00:00:15,150
And actually we already have our controller folder here,
5
00:00:15,150 --> 00:00:18,120
and the tour and user controllers in them,
6
00:00:18,120 --> 00:00:20,040
and we already have the routes
7
00:00:20,040 --> 00:00:21,550
here in the route folder.
8
00:00:21,550 --> 00:00:24,540
And so really what we need to do in this video
9
00:00:24,540 --> 00:00:26,200
is to create a model folder,
10
00:00:26,200 --> 00:00:29,490
and create a tour model in there.
11
00:00:29,490 --> 00:00:30,896
So, let's do that.
12
00:00:30,896 --> 00:00:33,590
(clicking)
13
00:00:33,590 --> 00:00:35,870
So, models and in there
14
00:00:38,660 --> 00:00:40,260
the tourModel.js
15
00:00:41,330 --> 00:00:42,733
Let's close out these guys,
16
00:00:44,240 --> 00:00:47,500
and so let's go ahead and copy,
17
00:00:47,500 --> 00:00:49,680
or cut actually, this schema
18
00:00:50,730 --> 00:00:52,743
and this entire model declaration here,
19
00:00:54,000 --> 00:00:56,293
and put it in the tour model.
20
00:00:58,000 --> 00:01:03,000
We will also want the Mongoose importing here.
21
00:01:05,209 --> 00:01:08,070
All right, and in fact,
22
00:01:08,070 --> 00:01:11,063
let's get completely rid of this code.
23
00:01:12,050 --> 00:01:14,290
All right, so this here was just for testing,
24
00:01:14,290 --> 00:01:16,420
and we don't need it anymore.
25
00:01:16,420 --> 00:01:18,610
So it has done its job,
26
00:01:18,610 --> 00:01:20,110
and so all we really want to do
27
00:01:20,110 --> 00:01:23,750
in this file here is to connect to the database,
28
00:01:23,750 --> 00:01:26,360
but everything that is about the models themselves,
29
00:01:26,360 --> 00:01:29,120
will always live inside of a file,
30
00:01:29,120 --> 00:01:30,893
inside of the models folder.
31
00:01:31,920 --> 00:01:34,640
All right, now in here eslint tells us
32
00:01:34,640 --> 00:01:36,452
that this variable here has not been used,
33
00:01:36,452 --> 00:01:38,400
but actually we want to use it
34
00:01:38,400 --> 00:01:41,823
because we want to export the model from this file.
35
00:01:44,700 --> 00:01:47,150
So module.exports, and this should actually
36
00:01:47,150 --> 00:01:50,530
be the only thing we export from this file,
37
00:01:50,530 --> 00:01:54,590
and so we use the kind of default export with module.exports
38
00:01:56,080 --> 00:01:59,340
Okay, and so this is our very simple tour model
39
00:01:59,340 --> 00:02:01,300
that we created in our last lecture,
40
00:02:01,300 --> 00:02:04,290
and now here we put it in it's own standalone file,
41
00:02:04,290 --> 00:02:07,100
and then finally exported it from here.
42
00:02:07,100 --> 00:02:10,669
Okay, now where do we actually need this tour.
43
00:02:10,669 --> 00:02:13,290
So, in other words, where are we actually going to create
44
00:02:13,290 --> 00:02:16,850
and query, and delete and update tours.
45
00:02:16,850 --> 00:02:20,643
Well we're going to do so in the tourController, right?
46
00:02:22,320 --> 00:02:23,350
So right here,
47
00:02:23,350 --> 00:02:27,233
and so let's go ahead and actually import the model in here.
48
00:02:28,200 --> 00:02:30,436
So right here at the top,
49
00:02:30,436 --> 00:02:32,540
(clicking)
50
00:02:32,540 --> 00:02:34,583
and I'm giving it the exact same name.
51
00:02:35,920 --> 00:02:37,720
So still tour,
52
00:02:37,720 --> 00:02:42,260
and now I want to require, so the current folder,
53
00:02:42,260 --> 00:02:44,250
then up one folder,
54
00:02:44,250 --> 00:02:47,163
and then down into the models folder,
55
00:02:48,110 --> 00:02:50,623
and in there, tour model.
56
00:02:53,210 --> 00:02:55,220
Okay, now of course it's telling me
57
00:02:55,220 --> 00:02:56,960
that I'm not using this variable,
58
00:02:56,960 --> 00:02:59,020
but don't worry about that for now.
59
00:02:59,020 --> 00:03:01,020
So, next up, I want to get rid
60
00:03:01,020 --> 00:03:04,790
of this place here where we actually import
61
00:03:04,790 --> 00:03:06,580
the data as a json file.
62
00:03:06,580 --> 00:03:08,660
So, of course, we no longer need this.
63
00:03:08,660 --> 00:03:10,960
This here was just for testing purposes.
64
00:03:10,960 --> 00:03:13,080
So let's get rid of it.
65
00:03:13,080 --> 00:03:14,770
You can also comment it out
66
00:03:14,770 --> 00:03:18,540
if you want to leave it maybe as a reference for yourself.
67
00:03:18,540 --> 00:03:20,903
Then just go ahead and comment it out.
68
00:03:22,770 --> 00:03:24,210
Then down here we get this error
69
00:03:24,210 --> 00:03:26,480
because the variable that we just deleted
70
00:03:26,480 --> 00:03:29,280
is no longer defined,
71
00:03:29,280 --> 00:03:32,410
and so let me comment out this piece of code here
72
00:03:32,410 --> 00:03:35,363
because, again, we're gonna need something similar to this.
73
00:03:37,230 --> 00:03:39,900
Okay, get tour, let's comment all
74
00:03:39,900 --> 00:03:44,330
of this here out as well just so that we don't get
75
00:03:44,330 --> 00:03:48,060
any errors as soon as we save this file.
76
00:03:48,060 --> 00:03:50,240
Then here, actually, we can get rid,
77
00:03:50,240 --> 00:03:52,400
well kind of, of all of this.
78
00:03:52,400 --> 00:03:55,210
So we're no longer gonna use any of this.
79
00:03:55,210 --> 00:03:57,010
So let me just keep this piece here.
80
00:03:58,080 --> 00:04:00,130
So I'm gonna copy it,
81
00:04:00,130 --> 00:04:01,780
delete everything else from this,
82
00:04:03,640 --> 00:04:05,240
and put it back here.
83
00:04:05,240 --> 00:04:06,610
We still got this error,
84
00:04:06,610 --> 00:04:09,693
and so I'm commenting out this piece of code.
85
00:04:10,690 --> 00:04:12,950
All right, and here we don't get any errors.
86
00:04:12,950 --> 00:04:15,693
So let's just leave it like this for now, okay?
87
00:04:15,693 --> 00:04:18,209
So what I just did here was to basically
88
00:04:18,209 --> 00:04:20,800
clean the code that we wrote before
89
00:04:20,800 --> 00:04:23,040
in order to no longer depend on the data
90
00:04:23,040 --> 00:04:24,853
that we had in the json file.
91
00:04:25,850 --> 00:04:28,990
All right, so now we should have no more errors,
92
00:04:28,990 --> 00:04:32,190
or actually we should in this checkID function,
93
00:04:32,190 --> 00:04:33,930
and this checkID function, we,
94
00:04:33,930 --> 00:04:37,070
in fact, no longer will need it, okay?
95
00:04:37,070 --> 00:04:39,460
Because from now on we're gonna start working
96
00:04:39,460 --> 00:04:42,930
with the IDs that are coming from MongoDB,
97
00:04:42,930 --> 00:04:45,540
and Mongo itself will give us an error
98
00:04:45,540 --> 00:04:48,046
if we use an invalid ID,
99
00:04:48,046 --> 00:04:50,800
and so this function that we have here
100
00:04:50,800 --> 00:04:53,260
was actually very useful for showing you
101
00:04:53,260 --> 00:04:54,940
how middleware actually works,
102
00:04:54,940 --> 00:04:57,930
by giving you this very practical example here,
103
00:04:57,930 --> 00:04:59,090
and later in the course, people,
104
00:04:59,090 --> 00:05:00,830
of course, use more middleware,
105
00:05:00,830 --> 00:05:02,660
but this particular function here,
106
00:05:02,660 --> 00:05:04,450
we will no longer need it.
107
00:05:04,450 --> 00:05:06,234
So, let's get rid of it,
108
00:05:06,234 --> 00:05:09,870
and also of this file system import,
109
00:05:09,870 --> 00:05:13,170
again, because we're no longer using the file here.
110
00:05:13,170 --> 00:05:14,450
So we still got some error here.
111
00:05:14,450 --> 00:05:16,120
Let's see what's happening,
112
00:05:16,120 --> 00:05:19,140
and it looks like it is in the
113
00:05:19,140 --> 00:05:21,210
in the tour routes, okay?
114
00:05:21,210 --> 00:05:22,250
And so actually that was the one
115
00:05:22,250 --> 00:05:23,853
that I was gonna change next.
116
00:05:25,420 --> 00:05:26,710
So the problem here is that
117
00:05:26,710 --> 00:05:30,780
this tourController.checkID, of course no longer
118
00:05:30,780 --> 00:05:33,077
exists because we just deleted it,
119
00:05:33,077 --> 00:05:35,780
and so let's get rid of this as well,
120
00:05:35,780 --> 00:05:38,930
or actually let me just comment it out, okay?
121
00:05:38,930 --> 00:05:41,000
So you keep in mind that you can use
122
00:05:41,000 --> 00:05:43,580
this .param function here to define
123
00:05:43,580 --> 00:05:47,190
parameter middleware in your own applications, okay?
124
00:05:47,190 --> 00:05:48,820
So I don't want you to forget that,
125
00:05:48,820 --> 00:05:51,060
and so just leave it here in your code
126
00:05:51,060 --> 00:05:53,120
so that maybe later when you come back to it
127
00:05:53,120 --> 00:05:56,270
you still know that it's there, okay?
128
00:05:56,270 --> 00:05:57,520
So now I saved it,
129
00:05:57,520 --> 00:05:59,120
and so we're back on track here.
130
00:05:59,120 --> 00:06:01,860
So everything is back to working,
131
00:06:01,860 --> 00:06:04,800
and our code is now sufficiently well refactored
132
00:06:04,800 --> 00:06:06,880
so that in the next video we can actually start
133
00:06:06,880 --> 00:06:10,343
implementing the correct functions in our API.
134
00:06:11,440 --> 00:06:14,450
So basically, getting all tours,
135
00:06:14,450 --> 00:06:18,120
creating tours, deleting tours, and updating tours.
136
00:06:18,120 --> 00:06:19,420
So, one by one, we will start
137
00:06:19,420 --> 00:06:21,380
implementing these controller functions,
138
00:06:21,380 --> 00:06:24,040
or handler functions if you prefer that,
139
00:06:24,040 --> 00:06:25,743
starting in the next video.
10479
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.