All language subtitles for 013 Importing Development Data_Downloadly.ir_en

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian Download
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:01,100 --> 00:00:02,990 Let's now take a small break 2 00:00:02,990 --> 00:00:04,900 from building our API 3 00:00:04,900 --> 00:00:07,080 and build a fun little script 4 00:00:07,080 --> 00:00:10,430 that will import the tour data from our JSON file 5 00:00:10,430 --> 00:00:12,930 into the MongoDB database. 6 00:00:12,930 --> 00:00:14,240 And I wasn't really sure 7 00:00:14,240 --> 00:00:16,850 if I should include this video in the course 8 00:00:16,850 --> 00:00:19,620 or if I should just come with the script 9 00:00:19,620 --> 00:00:22,690 already in the course starter files. 10 00:00:22,690 --> 00:00:25,710 But I thought I thought it was a nice little exercise 11 00:00:25,710 --> 00:00:27,560 and so I included it anyways. 12 00:00:27,560 --> 00:00:30,023 So, anyway, let's now get started. 13 00:00:31,860 --> 00:00:34,233 So, basically we're gonna create a script 14 00:00:34,233 --> 00:00:37,200 that will simply load the data from the JSON file 15 00:00:37,200 --> 00:00:39,730 as I just said into the database. 16 00:00:39,730 --> 00:00:42,090 And this script is completely independent 17 00:00:42,090 --> 00:00:44,560 of the rest of our express application. 18 00:00:44,560 --> 00:00:46,990 And so we'll run this completely separately 19 00:00:46,990 --> 00:00:50,720 from the comment line just to import everything once. 20 00:00:50,720 --> 00:00:53,310 Okay, so let me actually create the script 21 00:00:53,310 --> 00:00:56,330 right here in the data folder. 22 00:00:56,330 --> 00:00:57,433 So new file, 23 00:00:58,780 --> 00:00:59,623 import, 24 00:01:01,240 --> 00:01:03,543 dev data.js. 25 00:01:04,400 --> 00:01:05,379 All right. 26 00:01:05,379 --> 00:01:07,810 So, what are we gonna need for this? 27 00:01:07,810 --> 00:01:09,530 We will need mongoose of course 28 00:01:09,530 --> 00:01:11,370 so let's start with that. 29 00:01:11,370 --> 00:01:15,380 Or actually, let's just go ahead into the server.js file 30 00:01:15,380 --> 00:01:16,990 and copy this stuff 31 00:01:16,990 --> 00:01:20,053 because why writing it all over again. 32 00:01:20,960 --> 00:01:23,320 So let's copy everything 33 00:01:23,320 --> 00:01:26,090 and then delete what we don't need. 34 00:01:26,090 --> 00:01:28,410 So we don't need our express application 35 00:01:29,370 --> 00:01:31,370 we also need the .env package 36 00:01:31,370 --> 00:01:33,740 because we need our environment variables 37 00:01:33,740 --> 00:01:38,740 in order to be able to connect to the database again, okay. 38 00:01:38,970 --> 00:01:41,560 And we need to connect to the database in this script 39 00:01:41,560 --> 00:01:44,220 again because it runs completely independent 40 00:01:44,220 --> 00:01:46,010 from the express application. 41 00:01:46,010 --> 00:01:48,930 It's only gonna run once in the beginning. 42 00:01:48,930 --> 00:01:52,690 Next up, we need access to the file system module 43 00:01:52,690 --> 00:01:55,483 because of course we want to read the JSON file. 44 00:01:57,100 --> 00:01:58,700 So require fs 45 00:01:59,910 --> 00:02:03,860 and finally we also need access to the tour model 46 00:02:03,860 --> 00:02:05,390 because the tour model is 47 00:02:05,390 --> 00:02:08,993 where we want to write the tours to, right? 48 00:02:10,300 --> 00:02:12,560 So, tour equals 49 00:02:12,560 --> 00:02:14,870 and now let's find the path there 50 00:02:15,900 --> 00:02:18,410 so from the place where we are right now 51 00:02:18,410 --> 00:02:21,190 we need to go up one level. 52 00:02:21,190 --> 00:02:24,023 And what's going on here with these quotes? 53 00:02:25,800 --> 00:02:27,640 All right, so one level up 54 00:02:27,640 --> 00:02:29,960 and we're in dev data. 55 00:02:29,960 --> 00:02:32,250 So we need another level up 56 00:02:32,250 --> 00:02:33,900 so that we're in the main folder. 57 00:02:33,900 --> 00:02:36,810 And from there we go in to models 58 00:02:36,810 --> 00:02:38,483 and into the tour model. 59 00:02:39,910 --> 00:02:43,160 Okay and that should be it for setup. 60 00:02:43,160 --> 00:02:46,053 Now let's start by reading the file. 61 00:02:47,340 --> 00:02:50,460 So, read JSON file 62 00:02:50,460 --> 00:02:52,253 and that should be fairly simple. 63 00:02:54,250 --> 00:02:57,490 So the tours are at fs.readfile 64 00:02:59,250 --> 00:03:01,700 and we can use the synchronous version of course. 65 00:03:02,820 --> 00:03:07,633 And let's simply say tours simple.json, okay. 66 00:03:08,467 --> 00:03:09,403 And then, 67 00:03:10,260 --> 00:03:12,970 also the encoding. 68 00:03:12,970 --> 00:03:15,233 So, file encoding, utf eight. 69 00:03:16,600 --> 00:03:17,563 Give it a save. 70 00:03:18,730 --> 00:03:21,540 And so now we can write the actual function 71 00:03:21,540 --> 00:03:24,393 that is gonna import the data into the database. 72 00:03:25,750 --> 00:03:29,183 So import data into database. 73 00:03:30,040 --> 00:03:32,380 Okay, just like this. 74 00:03:32,380 --> 00:03:33,940 And so let's create this function. 75 00:03:33,940 --> 00:03:37,690 Import data, import data, 76 00:03:37,690 --> 00:03:39,000 yep. 77 00:03:39,000 --> 00:03:40,980 And that's gonna be and async function 78 00:03:43,010 --> 00:03:45,940 which does not need any arguments 79 00:03:45,940 --> 00:03:50,913 and so let's again use a try catch block here. 80 00:03:53,902 --> 00:03:57,520 And here I'm simply gonna log it to the console 81 00:03:57,520 --> 00:03:58,740 if there is some error, 82 00:03:58,740 --> 00:04:02,350 just to know what's going on in that case. 83 00:04:02,350 --> 00:04:03,183 And now here, 84 00:04:03,183 --> 00:04:05,900 what we will do is very simple. 85 00:04:05,900 --> 00:04:07,253 We are simply gonna await, 86 00:04:08,100 --> 00:04:10,950 tour.create. 87 00:04:10,950 --> 00:04:13,200 So we already used tour.create 88 00:04:13,200 --> 00:04:16,070 and we pass then an object back then right? 89 00:04:16,070 --> 00:04:20,930 But the create method can also accept an array of objects. 90 00:04:20,930 --> 00:04:22,010 And in that case 91 00:04:22,010 --> 00:04:24,390 it will then simply create a new document 92 00:04:24,390 --> 00:04:26,663 for each of the objects in the array. 93 00:04:27,560 --> 00:04:28,920 So, very simple, 94 00:04:28,920 --> 00:04:33,920 all we have to do is to specify our tours data here, right? 95 00:04:34,750 --> 00:04:37,520 And actually it's not 100% correct 96 00:04:37,520 --> 00:04:40,280 because remember that this is JSON. 97 00:04:40,280 --> 00:04:42,860 And so we need to first convert it actually 98 00:04:42,860 --> 00:04:47,423 into a JavaScript object using json.parse. 99 00:04:49,580 --> 00:04:52,380 Okay and so now we actually have 100 00:04:52,380 --> 00:04:54,480 an array of JavaScript objects 101 00:04:54,480 --> 00:04:59,220 that we can now pass into the create method, okay. 102 00:04:59,220 --> 00:05:00,950 And if that was successful, 103 00:05:00,950 --> 00:05:03,290 then the next line is gonna be executed 104 00:05:04,350 --> 00:05:08,660 and so here we can say data successfully 105 00:05:10,820 --> 00:05:12,910 loaded, all right. 106 00:05:12,910 --> 00:05:15,060 And this should already do the job. 107 00:05:15,060 --> 00:05:19,300 Now what about the data that is already in the database? 108 00:05:19,300 --> 00:05:21,150 We can also create an easy way 109 00:05:21,150 --> 00:05:24,620 to basically delete all of that data at the same time. 110 00:05:24,620 --> 00:05:27,343 And so let's simply go ahead and do that as well. 111 00:05:28,250 --> 00:05:30,750 So, delete all data 112 00:05:31,762 --> 00:05:33,823 from collection, let's say. 113 00:05:35,260 --> 00:05:37,840 And this weird yellow color that you see here 114 00:05:37,840 --> 00:05:41,070 actually comes from an extension that I have installed here. 115 00:05:41,070 --> 00:05:42,820 And so to get rid of that, 116 00:05:42,820 --> 00:05:45,633 I'm simply gonna write database again, okay. 117 00:05:47,610 --> 00:05:49,110 So delete data 118 00:05:50,460 --> 00:05:53,910 and again this is gonna be an async function 119 00:05:53,910 --> 00:05:55,373 without any arguments. 120 00:05:57,640 --> 00:05:59,880 And let me actually copy this code here. 121 00:06:01,885 --> 00:06:03,170 So, delete it 122 00:06:05,000 --> 00:06:07,520 and now about the deleting itself 123 00:06:07,520 --> 00:06:11,820 we can use the delete many function. 124 00:06:11,820 --> 00:06:14,240 Okay and actually I showed you this one 125 00:06:14,240 --> 00:06:18,120 back in the intro to MongoDB, right? 126 00:06:18,120 --> 00:06:19,920 Where we could use delete many 127 00:06:19,920 --> 00:06:22,610 and then simply pass in nothing in there 128 00:06:22,610 --> 00:06:23,640 and that would then delete 129 00:06:23,640 --> 00:06:26,710 all of the documents in a certain collection, right? 130 00:06:26,710 --> 00:06:29,020 And so mongoose basically implemented 131 00:06:29,020 --> 00:06:33,180 the same function here on the model, okay. 132 00:06:33,180 --> 00:06:34,013 So in this case, 133 00:06:34,013 --> 00:06:37,520 the tour model has access to this delete many method 134 00:06:37,520 --> 00:06:39,120 which will then do exactly the same 135 00:06:39,120 --> 00:06:43,380 as delete many does in native MongoDB, right? 136 00:06:43,380 --> 00:06:46,320 So, remember that mongoose is just a, 137 00:06:46,320 --> 00:06:49,740 like a layer of abstraction on top of MongoDB. 138 00:06:49,740 --> 00:06:52,700 Which is why it doesn't use the exact same functions 139 00:06:52,700 --> 00:06:56,040 but it still gives us access to some similar ones 140 00:06:56,040 --> 00:06:58,490 or to ones that actually have the same name. 141 00:06:58,490 --> 00:07:00,570 So delete many actually has the same name 142 00:07:00,570 --> 00:07:03,780 as the native MongoDB function, all right? 143 00:07:03,780 --> 00:07:06,700 So again, what this is gonna do is to simply go ahead 144 00:07:06,700 --> 00:07:10,620 and delete all the documents in the tours collection. 145 00:07:10,620 --> 00:07:12,860 So, we have our two functions here 146 00:07:12,860 --> 00:07:15,240 but if we now actually run this file 147 00:07:15,240 --> 00:07:16,850 then nothing will happen. 148 00:07:16,850 --> 00:07:17,700 And that's because 149 00:07:17,700 --> 00:07:21,320 we're not calling any of these functions anywhere, right? 150 00:07:21,320 --> 00:07:22,300 Now we could go ahead 151 00:07:22,300 --> 00:07:26,820 and simply write something like import data here 152 00:07:26,820 --> 00:07:29,000 and then simply call the function here 153 00:07:29,000 --> 00:07:32,040 but I wanted to make this a little bit more fun. 154 00:07:32,040 --> 00:07:34,930 So let's now actually learn a tiny little bit 155 00:07:34,930 --> 00:07:38,130 about interacting with the command line, okay. 156 00:07:38,130 --> 00:07:39,580 And so I'm actually gonna go ahead 157 00:07:39,580 --> 00:07:43,480 and run this file without calling any of these functions. 158 00:07:43,480 --> 00:07:45,480 But instead I'm gonna log to the console 159 00:07:47,260 --> 00:07:51,310 process.argv, 160 00:07:51,310 --> 00:07:52,143 okay. 161 00:07:52,143 --> 00:07:55,800 Just so we can see what process.argv actually is 162 00:07:55,800 --> 00:07:57,860 so that we can then use it. 163 00:07:57,860 --> 00:07:58,693 All right. 164 00:07:58,693 --> 00:08:01,080 Let me open up here another terminal 165 00:08:01,080 --> 00:08:02,583 and then I will use node, 166 00:08:03,840 --> 00:08:05,520 go into dev data 167 00:08:05,520 --> 00:08:06,353 then into data 168 00:08:06,353 --> 00:08:08,980 and then in there import dev data. 169 00:08:08,980 --> 00:08:11,570 And we get some errors here. 170 00:08:11,570 --> 00:08:12,560 Let's see where. 171 00:08:12,560 --> 00:08:15,710 Ah, yeah so it's because of this, 172 00:08:15,710 --> 00:08:17,290 of this file name. 173 00:08:17,290 --> 00:08:20,963 So I guess we should specify the path to there basically. 174 00:08:22,020 --> 00:08:24,540 So let's run this one again 175 00:08:24,540 --> 00:08:26,710 and again we have this error. 176 00:08:26,710 --> 00:08:30,010 And yeah, of course I get this error. 177 00:08:30,010 --> 00:08:31,360 That's a stupid one. 178 00:08:31,360 --> 00:08:32,860 Remember how I told you 179 00:08:32,860 --> 00:08:36,710 that this dot here is always relative from the folder 180 00:08:36,710 --> 00:08:39,210 where the node application was actually started. 181 00:08:39,210 --> 00:08:40,669 And so that's the home folder. 182 00:08:40,669 --> 00:08:42,740 And so we're basically looking for this file here 183 00:08:42,740 --> 00:08:45,010 in the home folder, okay. 184 00:08:45,010 --> 00:08:49,470 So what I should use instead is the dir name, 185 00:08:49,470 --> 00:08:52,860 variable that is available to us everywhere. 186 00:08:52,860 --> 00:08:54,653 So that goes like this. 187 00:08:58,980 --> 00:09:00,320 All right. 188 00:09:00,320 --> 00:09:01,810 Give it another save 189 00:09:01,810 --> 00:09:05,860 and clear up the console and run it again. 190 00:09:05,860 --> 00:09:07,080 And so now it works. 191 00:09:07,080 --> 00:09:08,000 And so here 192 00:09:08,000 --> 00:09:11,650 is the result of this console.log that we have down here, 193 00:09:11,650 --> 00:09:12,897 So process.argv 194 00:09:14,020 --> 00:09:16,020 and basically that is an array 195 00:09:16,020 --> 00:09:20,880 of these two arguments of running this node process. 196 00:09:20,880 --> 00:09:22,890 So, this here is basically 197 00:09:22,890 --> 00:09:24,930 where the node command is located. 198 00:09:24,930 --> 00:09:26,910 So this equivalent to this node 199 00:09:26,910 --> 00:09:28,940 and then the second one, 200 00:09:28,940 --> 00:09:33,730 so this path to this file is actually this here, okay. 201 00:09:33,730 --> 00:09:35,490 So let's quit this here 202 00:09:35,490 --> 00:09:37,723 and let's add kind of an option here. 203 00:09:39,130 --> 00:09:40,090 So I'm gonna write, 204 00:09:40,090 --> 00:09:41,750 dash, dash import 205 00:09:41,750 --> 00:09:43,620 and so I'm sure you have seen something like this 206 00:09:43,620 --> 00:09:44,910 many times before. 207 00:09:44,910 --> 00:09:47,930 For example, when we save a package as a dev dependency 208 00:09:47,930 --> 00:09:49,763 we do it like this. 209 00:09:50,950 --> 00:09:53,180 Save dev, and so we use the same 210 00:09:53,180 --> 00:09:55,710 kind of format for specifying options. 211 00:09:55,710 --> 00:09:57,200 Okay so, dash dash 212 00:09:57,200 --> 00:09:59,760 and then whatever string we put here. 213 00:09:59,760 --> 00:10:03,187 And so I choose to basically specify 214 00:10:03,187 --> 00:10:05,260 the import option like this. 215 00:10:05,260 --> 00:10:07,354 And so you see that now the third argument 216 00:10:07,354 --> 00:10:10,660 is dash dash import, all right? 217 00:10:10,660 --> 00:10:12,860 And so that means that we can now go ahead 218 00:10:12,860 --> 00:10:15,460 and basically use this data here 219 00:10:15,460 --> 00:10:16,410 in order to write 220 00:10:16,410 --> 00:10:19,900 a very simple command line application basically 221 00:10:19,900 --> 00:10:22,970 which will import the data when we specify this option 222 00:10:22,970 --> 00:10:24,430 and will delete the data 223 00:10:24,430 --> 00:10:27,223 when we specify the delete option, all right? 224 00:10:28,090 --> 00:10:29,983 So, let's actually do that. 225 00:10:32,090 --> 00:10:33,240 So, if 226 00:10:34,140 --> 00:10:37,090 process.argv 227 00:10:37,090 --> 00:10:38,040 and it's an array 228 00:10:38,040 --> 00:10:40,370 and we want the third. 229 00:10:40,370 --> 00:10:42,423 So zero, one, two. 230 00:10:44,610 --> 00:10:49,300 So if that element is equal to import 231 00:10:50,380 --> 00:10:54,313 well, then we want to run import data. 232 00:10:55,860 --> 00:10:56,693 Right? 233 00:10:58,950 --> 00:10:59,783 If... 234 00:11:00,790 --> 00:11:04,320 Process.argv two 235 00:11:04,320 --> 00:11:05,853 is equal, 236 00:11:09,180 --> 00:11:12,150 to delete then we want to run 237 00:11:15,310 --> 00:11:16,810 delete data. 238 00:11:16,810 --> 00:11:17,643 And that's it. 239 00:11:19,240 --> 00:11:21,270 So, that should actually give us 240 00:11:21,270 --> 00:11:23,890 the result that we're looking for. 241 00:11:23,890 --> 00:11:25,580 Let's finish this here. 242 00:11:25,580 --> 00:11:27,540 And so now let's run the command here 243 00:11:27,540 --> 00:11:30,460 with delete in order to delete all the data 244 00:11:30,460 --> 00:11:32,240 that we have in the database. 245 00:11:32,240 --> 00:11:33,413 So let's try that out. 246 00:11:35,120 --> 00:11:36,560 It's doing something 247 00:11:36,560 --> 00:11:38,813 and data successfully deleted. 248 00:11:39,770 --> 00:11:42,160 So let's take a look at that now. 249 00:11:42,160 --> 00:11:46,110 And if we run now this get all tours route 250 00:11:46,110 --> 00:11:49,390 then indeed we have zero results. 251 00:11:49,390 --> 00:11:52,380 So, all our tours are now gone. 252 00:11:52,380 --> 00:11:54,020 So it worked. 253 00:11:54,020 --> 00:11:57,380 Now this process here is basically still running. 254 00:11:57,380 --> 00:11:59,060 And so let's quickly fix that, 255 00:11:59,060 --> 00:12:01,210 which is kind of easy. 256 00:12:01,210 --> 00:12:03,410 So, that's a new one we haven't used yet. 257 00:12:03,410 --> 00:12:07,480 Which is process.exit, 258 00:12:07,480 --> 00:12:08,520 All right? 259 00:12:08,520 --> 00:12:12,290 Now this process.exit is kind of an aggressive way 260 00:12:12,290 --> 00:12:14,120 of stopping an application 261 00:12:14,120 --> 00:12:16,280 but in this case it's no problem 262 00:12:16,280 --> 00:12:19,060 because it's really just a very small script 263 00:12:19,060 --> 00:12:23,210 that we're running here and not a real application, right? 264 00:12:23,210 --> 00:12:24,790 Let's just copy the same thing here 265 00:12:24,790 --> 00:12:26,683 into our import data function. 266 00:12:27,860 --> 00:12:29,483 And so now I'm gonna quit it. 267 00:12:30,350 --> 00:12:32,230 And just to show that it works 268 00:12:32,230 --> 00:12:33,330 I'm gonna run it again 269 00:12:34,620 --> 00:12:36,080 so data successfully deleted 270 00:12:36,080 --> 00:12:38,513 and then it exited the process. 271 00:12:39,530 --> 00:12:40,520 All right. 272 00:12:40,520 --> 00:12:43,943 And so now it's time to actually run the function 273 00:12:43,943 --> 00:12:46,293 that we were interested in in the first place. 274 00:12:47,650 --> 00:12:50,760 So with the import flag, basically. 275 00:12:50,760 --> 00:12:52,380 So the import option. 276 00:12:52,380 --> 00:12:53,647 So let's run that 277 00:12:53,647 --> 00:12:56,210 and let's see if it actually works. 278 00:12:56,210 --> 00:12:57,720 And it didn't. 279 00:12:57,720 --> 00:12:59,343 So why is that? 280 00:13:00,220 --> 00:13:03,823 So it tells us here a tour must have a group size. 281 00:13:05,060 --> 00:13:07,790 So where's that coming from? 282 00:13:07,790 --> 00:13:10,400 And we see a lot of validation errors here. 283 00:13:10,400 --> 00:13:13,023 So something must have gone wrong here. 284 00:13:14,370 --> 00:13:15,750 So yeah, we have the cover image, 285 00:13:15,750 --> 00:13:20,110 we have the tour description. 286 00:13:20,110 --> 00:13:21,663 We have the price. 287 00:13:22,610 --> 00:13:23,540 Well, that's weird. 288 00:13:23,540 --> 00:13:24,823 Max group size, 289 00:13:26,760 --> 00:13:29,653 let me actually check if anything happened here. 290 00:13:30,620 --> 00:13:32,120 Actually we have nine tours here 291 00:13:32,120 --> 00:13:35,120 and I think nine is actually all we have. 292 00:13:35,120 --> 00:13:39,380 And so to me it kind of looks like it actually did work. 293 00:13:39,380 --> 00:13:43,570 But let's actually take a quick look at our data here. 294 00:13:43,570 --> 00:13:47,603 So, just to figure out why this actually happens. 295 00:13:48,730 --> 00:13:52,040 So tour simple here 296 00:13:52,040 --> 00:13:53,620 and so we can already see, 297 00:13:53,620 --> 00:13:57,180 actually the problem that is happening. 298 00:13:57,180 --> 00:13:58,840 So we have all these tours 299 00:13:58,840 --> 00:14:00,730 so the original ones. 300 00:14:00,730 --> 00:14:02,630 But then from the last section, 301 00:14:02,630 --> 00:14:04,170 we have these three here 302 00:14:04,170 --> 00:14:08,160 that we kind of added using our file based API. 303 00:14:08,160 --> 00:14:09,210 So, remember that? 304 00:14:09,210 --> 00:14:12,120 So back then we only specified the name, duration 305 00:14:12,120 --> 00:14:14,660 and difficulty and nothing else. 306 00:14:14,660 --> 00:14:16,030 And so right now 307 00:14:16,030 --> 00:14:19,920 our script is trying to import these three tours. 308 00:14:19,920 --> 00:14:23,010 But of course, we're not interested in them at all 309 00:14:23,010 --> 00:14:28,010 and so let's go ahead and save this here, okay. 310 00:14:28,030 --> 00:14:29,620 Then quit this process 311 00:14:29,620 --> 00:14:32,720 and so actually this process.exit 312 00:14:32,720 --> 00:14:35,650 can be outside of the try catch block 313 00:14:35,650 --> 00:14:36,497 and be simply here by the end of the function. 314 00:14:36,497 --> 00:14:37,961 So that no matter if there's an error or not 315 00:14:37,961 --> 00:14:42,583 it will always just exit the process. 316 00:14:43,980 --> 00:14:44,813 All right. 317 00:14:45,900 --> 00:14:47,543 So let's delete everything. 318 00:14:49,580 --> 00:14:51,820 All right, clear the console again. 319 00:14:51,820 --> 00:14:52,893 Now import, 320 00:14:54,230 --> 00:14:55,063 and yeah. 321 00:14:55,063 --> 00:14:56,853 So data successfully loaded. 322 00:14:59,790 --> 00:15:02,180 As indeed here we are again. 323 00:15:02,180 --> 00:15:04,210 So now it's working 100%, 324 00:15:04,210 --> 00:15:08,020 we have our data that we can start working with now 325 00:15:08,020 --> 00:15:09,800 and so, yeah. 326 00:15:09,800 --> 00:15:12,740 Our work with this one here is done. 327 00:15:12,740 --> 00:15:14,900 So, a nice little function, 328 00:15:14,900 --> 00:15:16,310 or a nice little script actually. 329 00:15:16,310 --> 00:15:20,200 I hope that everything made sense to you 330 00:15:20,200 --> 00:15:25,200 and yeah that it was kind of a fun exercise for you as well. 331 00:15:25,320 --> 00:15:26,970 Anyway, see you in the next video 332 00:15:26,970 --> 00:15:31,090 where we are finally starting to then use all this data 333 00:15:31,090 --> 00:15:32,740 and to improve our API 334 00:15:32,740 --> 00:15:35,203 by implementing a couple of nice features. 24207

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.