All language subtitles for 002 Connecting Our Database with the Express App_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,140 --> 00:00:02,980 Hello and welcome back. 2 00:00:02,980 --> 00:00:07,000 So, now it's finally time to connect the MongoDB database 3 00:00:07,000 --> 00:00:10,123 that we created with our Express application. 4 00:00:11,760 --> 00:00:13,880 And, the first step in doing that is 5 00:00:13,880 --> 00:00:16,850 to actually get our connection string from Atlas. 6 00:00:16,850 --> 00:00:20,620 So, just like we did before when we connected the database 7 00:00:20,620 --> 00:00:23,230 to Compass and to the Mongo Shell, 8 00:00:23,230 --> 00:00:25,460 we need to get our connection string 9 00:00:25,460 --> 00:00:29,760 in order to connect the application to this hosted database. 10 00:00:29,760 --> 00:00:32,310 Now, in case you're not using the hosted database 11 00:00:32,310 --> 00:00:34,300 on Atlas, then I will also show you 12 00:00:34,300 --> 00:00:36,410 how to connect your local database 13 00:00:36,410 --> 00:00:38,760 with the application a bit later in this video. 14 00:00:39,840 --> 00:00:43,670 Anyway, just click here on Connect Your Application 15 00:00:43,670 --> 00:00:46,430 and then this here is our connection string. 16 00:00:46,430 --> 00:00:49,160 Just make sure that you select Node.js here actually 17 00:00:49,160 --> 00:00:51,460 because the string might change based on that. 18 00:00:53,290 --> 00:00:54,770 Now, we also need the version. 19 00:00:54,770 --> 00:00:57,050 And, of course, it's later than three. 20 00:00:57,050 --> 00:01:00,780 And so, let's now go ahead and copy our connection string 21 00:01:00,780 --> 00:01:03,440 and then back in our application, 22 00:01:03,440 --> 00:01:05,700 we create it as an environment variable 23 00:01:05,700 --> 00:01:07,390 here in our config file. 24 00:01:07,390 --> 00:01:09,590 So, I already have DATABASE_PASSWORD. 25 00:01:09,590 --> 00:01:11,133 Let's create DATABASE now. 26 00:01:12,440 --> 00:01:14,410 And then, put our string in here. 27 00:01:14,410 --> 00:01:17,010 Now, two things about this connection string. 28 00:01:17,010 --> 00:01:21,140 First, here in this place, we need to put in our password. 29 00:01:21,140 --> 00:01:24,010 Now, we could go ahead and copy the password from here 30 00:01:24,010 --> 00:01:25,970 and then paste it here, but I prefer 31 00:01:25,970 --> 00:01:28,050 to leave it in a separate variable 32 00:01:28,050 --> 00:01:29,693 and then replace it in code. 33 00:01:30,640 --> 00:01:33,950 I will just actually change this password here 34 00:01:33,950 --> 00:01:35,813 to an uppercase password. 35 00:01:38,045 --> 00:01:41,030 So, PASSWORD to make it a bit more visible. 36 00:01:41,030 --> 00:01:44,070 Then, second, this here is actually our host, 37 00:01:44,070 --> 00:01:47,400 so basically the place where the database is hosted 38 00:01:47,400 --> 00:01:49,123 and then /test. 39 00:01:50,384 --> 00:01:53,320 Now, this test here is the name of the database 40 00:01:53,320 --> 00:01:54,940 that we want to connect to. 41 00:01:54,940 --> 00:01:58,093 And, in our case, we already created the natours database. 42 00:01:59,030 --> 00:02:03,100 Let's check that out actually here back in Compass. 43 00:02:03,100 --> 00:02:05,173 And, if we go here to COLLECTIONS, 44 00:02:06,020 --> 00:02:09,880 then we see that here, we already have our natours database. 45 00:02:09,880 --> 00:02:12,400 So, we did that by the end of the last section. 46 00:02:12,400 --> 00:02:13,360 You remember? 47 00:02:13,360 --> 00:02:15,180 And so, it's very important that here, 48 00:02:15,180 --> 00:02:18,260 in this connection string, we replace this test 49 00:02:18,260 --> 00:02:19,893 with the name of our database. 50 00:02:21,300 --> 00:02:23,630 So, natours, okay? 51 00:02:23,630 --> 00:02:25,810 So, very important here, again, 52 00:02:25,810 --> 00:02:28,690 do not forget to put this here, otherwise, 53 00:02:28,690 --> 00:02:29,893 it's not gonna work. 54 00:02:30,830 --> 00:02:33,180 Now, in case you're using the local database 55 00:02:33,180 --> 00:02:34,760 like I just mentioned before, 56 00:02:34,760 --> 00:02:37,033 this connection string is a lot easier. 57 00:02:37,920 --> 00:02:39,320 So, let's just create a variable 58 00:02:39,320 --> 00:02:44,320 for that one as well, DATABASE_LOCAL. 59 00:02:44,500 --> 00:02:47,490 But, again, if you're using this database string here, 60 00:02:47,490 --> 00:02:49,540 you don't need to worry about this part. 61 00:02:49,540 --> 00:02:50,780 I'm just doing this in case 62 00:02:50,780 --> 00:02:52,680 that you are using the local one. 63 00:02:52,680 --> 00:02:54,793 And so, in this case, it's quite simple. 64 00:02:55,940 --> 00:03:00,380 It's just mongodb and this is kind of a protocol here. 65 00:03:00,380 --> 00:03:04,280 So, instead of http, Mongo uses these like mongodb 66 00:03:04,280 --> 00:03:05,603 and protocol or something. 67 00:03:07,230 --> 00:03:09,720 Then, localhost and then the port, 68 00:03:09,720 --> 00:03:12,110 which we already talked about a couple of times 69 00:03:12,110 --> 00:03:16,770 and it's 27017, remember that? 70 00:03:16,770 --> 00:03:18,640 And then, just like before, we also need 71 00:03:18,640 --> 00:03:21,430 to specify the name of the database, 72 00:03:21,430 --> 00:03:22,870 which should be natours. 73 00:03:23,880 --> 00:03:25,820 Now, in order for this to work, of course, 74 00:03:25,820 --> 00:03:28,100 you need to keep your MongoDB server 75 00:03:28,100 --> 00:03:31,563 so that Mongo D process running at all times. 76 00:03:33,890 --> 00:03:35,790 So, switching it to the terminal. 77 00:03:35,790 --> 00:03:38,943 So, this local process here is the one that I mean. 78 00:03:39,930 --> 00:03:43,440 So, never close this process, so this terminal window, 79 00:03:43,440 --> 00:03:45,690 when you're working with your local database. 80 00:03:46,623 --> 00:03:49,190 So, otherwise, it's not gonna work. 81 00:03:49,190 --> 00:03:51,470 And, that's it for configuration. 82 00:03:51,470 --> 00:03:54,480 Next up, we need to install a MongoDB driver, 83 00:03:54,480 --> 00:03:57,540 so basically a software that allows our Node code 84 00:03:57,540 --> 00:04:01,170 to access and interact with a MongoDB database. 85 00:04:01,170 --> 00:04:04,050 And, there are a couple of different MongoDB drivers, 86 00:04:04,050 --> 00:04:05,320 but we're gonna use the one 87 00:04:05,320 --> 00:04:07,320 that I would say is the most popular one, 88 00:04:07,320 --> 00:04:10,340 which is called Mongoose, which adds a couple of features 89 00:04:10,340 --> 00:04:12,873 to the more native MongoDB driver. 90 00:04:13,770 --> 00:04:15,290 But, don't worry, in the next lecture, 91 00:04:15,290 --> 00:04:17,649 you're actually gonna learn all about Mongoose 92 00:04:17,649 --> 00:04:18,903 and why we're using it. 93 00:04:19,839 --> 00:04:22,040 For now, let's just go ahead and install it. 94 00:04:24,930 --> 00:04:26,790 So, mongoose, and the version 95 00:04:26,790 --> 00:04:29,020 that I'm gonna use is version five 96 00:04:29,020 --> 00:04:32,280 and so please go ahead and install version five as well 97 00:04:32,280 --> 00:04:35,480 so that we're on the same page with our code here. 98 00:04:35,480 --> 00:04:37,490 So, by the time you're watching this video, 99 00:04:37,490 --> 00:04:40,360 Mongoose six, or even seven maybe, 100 00:04:40,360 --> 00:04:42,140 might already be out there 101 00:04:42,140 --> 00:04:43,620 and then something might have changed 102 00:04:43,620 --> 00:04:47,261 and then your code might not work the exact same way. 103 00:04:47,261 --> 00:04:49,460 So, please just install version five 104 00:04:49,460 --> 00:04:51,450 because that's actually a pretty stable version 105 00:04:51,450 --> 00:04:53,210 at this point and I don't think 106 00:04:53,210 --> 00:04:55,600 that they are gonna add much important features 107 00:04:55,600 --> 00:04:56,433 in the future. 108 00:04:57,430 --> 00:05:00,630 So, in our package.json, it should now be here. 109 00:05:00,630 --> 00:05:04,720 So, 5.5.2, yours is probably a bit later, 110 00:05:04,720 --> 00:05:06,663 but that should not be a problem. 111 00:05:08,450 --> 00:05:11,660 Let's go now to server.js here, which, remember, 112 00:05:11,660 --> 00:05:14,020 is kind of the file where we do all 113 00:05:14,020 --> 00:05:16,190 of the setup of our application. 114 00:05:16,190 --> 00:05:18,260 For example, the environment variables 115 00:05:18,260 --> 00:05:21,410 or the imports or Express application. 116 00:05:21,410 --> 00:05:23,400 And, we also start the server down here. 117 00:05:23,400 --> 00:05:24,820 And so, this is also the file 118 00:05:24,820 --> 00:05:26,830 where we're gonna configure MongoDB. 119 00:05:29,350 --> 00:05:32,363 So, let's start by requiring our mongoose package here. 120 00:05:41,740 --> 00:05:44,900 And so, now we have access to the mongoose variable 121 00:05:44,900 --> 00:05:48,563 and on there, we simply call the connect method. 122 00:05:49,630 --> 00:05:51,920 Now, into this connect method, we need to, of course, 123 00:05:51,920 --> 00:05:54,513 pass in our database connection string. 124 00:05:55,360 --> 00:05:58,990 But, remember that, in there, we still have the password. 125 00:05:58,990 --> 00:06:01,730 So, basically this password placeholder here. 126 00:06:01,730 --> 00:06:03,620 And so, before we pass in the string, 127 00:06:03,620 --> 00:06:05,353 we need to actually replace it. 128 00:06:06,300 --> 00:06:09,100 So, replace it with the real password that we have here. 129 00:06:10,710 --> 00:06:12,203 So, let's quickly do that. 130 00:06:15,500 --> 00:06:19,970 And, I'm simply gonna call this variable DB for database. 131 00:06:19,970 --> 00:06:24,970 And so, let's get our process.env.DATABASE. 132 00:06:26,220 --> 00:06:29,320 So, that is, of course, our variable 133 00:06:29,320 --> 00:06:30,920 where the string here is stored. 134 00:06:32,570 --> 00:06:35,873 So, we're getting that and then replace. 135 00:06:38,580 --> 00:06:41,083 And, we want to replace PASSWORD. 136 00:06:42,600 --> 00:06:46,330 This here comes from the HTML close tag package 137 00:06:46,330 --> 00:06:48,653 that I have on my VS Code. 138 00:06:51,660 --> 00:06:54,393 So, process.env.DATABASE_PASSWORD. 139 00:06:59,480 --> 00:07:00,630 Give it a save. 140 00:07:00,630 --> 00:07:02,610 And, okay, so that makes sense. 141 00:07:02,610 --> 00:07:04,860 So, we're simply replacing this placeholder string 142 00:07:04,860 --> 00:07:08,563 with our real password in this connection string. 143 00:07:09,602 --> 00:07:11,680 And so, now we can use this variable 144 00:07:11,680 --> 00:07:13,820 in our mongoos.connect(). 145 00:07:13,820 --> 00:07:15,900 So, in here, the first argument is actually 146 00:07:15,900 --> 00:07:18,370 that connection string, so DB. 147 00:07:18,370 --> 00:07:21,720 And then, second, we pass in an object with some options 148 00:07:21,720 --> 00:07:25,250 and these are just some options that we need to specify 149 00:07:25,250 --> 00:07:29,150 in order to deal with some deprecation warnings. 150 00:07:29,150 --> 00:07:31,923 So, don't worry too much about these ones. 151 00:07:33,210 --> 00:07:37,870 So, useNewUrlParser, set it to true. 152 00:07:37,870 --> 00:07:41,483 Then, we need to use useCreateIndex, 153 00:07:43,780 --> 00:07:44,973 also set to true. 154 00:07:46,120 --> 00:07:48,207 And then, useFindAndModify 155 00:07:49,860 --> 00:07:51,203 and set it to false. 156 00:07:52,430 --> 00:07:55,040 So, again, these here are just some options 157 00:07:55,040 --> 00:07:57,270 to deal with some deprecation warnings. 158 00:07:57,270 --> 00:07:59,270 And so, when you're creating your own applications, 159 00:07:59,270 --> 00:08:01,943 just go ahead and use just exactly the same. 160 00:08:03,830 --> 00:08:07,050 Now, this connect method here is gonna return a promise 161 00:08:07,050 --> 00:08:12,050 and so let's actually handle that promise by using then(). 162 00:08:12,580 --> 00:08:14,720 And, this promise here actually gets access 163 00:08:14,720 --> 00:08:16,203 to a connection object. 164 00:08:17,590 --> 00:08:20,453 So, let's simply call it con here for connection. 165 00:08:22,989 --> 00:08:24,070 So, basically this connection will 166 00:08:24,070 --> 00:08:26,710 be the resolved value of the promise. 167 00:08:26,710 --> 00:08:29,140 And so, just to show you that we're actually connected, 168 00:08:29,140 --> 00:08:32,063 I want to just log this object to the console. 169 00:08:33,549 --> 00:08:37,690 So, console.log connection and actually I want 170 00:08:37,690 --> 00:08:40,342 to see the connections property on there. 171 00:08:42,740 --> 00:08:44,490 And, we can also log to the console 172 00:08:46,610 --> 00:08:50,340 something like DB connection successful. 173 00:08:54,090 --> 00:08:55,283 Give it a save here. 174 00:08:56,150 --> 00:08:58,640 And then, of course, it displays these warnings here 175 00:08:58,640 --> 00:09:01,160 because of our ESLint, but don't worry about that. 176 00:09:01,160 --> 00:09:03,260 That's just the way that we configured it. 177 00:09:04,290 --> 00:09:05,200 And so, let's now go ahead 178 00:09:05,200 --> 00:09:07,573 and actually run this application. 179 00:09:08,510 --> 00:09:12,880 Now, let me remember what kind of scripts we have. 180 00:09:12,880 --> 00:09:15,380 So, we have start:dev and start:prod. 181 00:09:15,380 --> 00:09:18,150 Now, since our script here is not just called start, 182 00:09:18,150 --> 00:09:19,520 which is kind of a standard, 183 00:09:19,520 --> 00:09:23,400 we always have to type npm run start:dev 184 00:09:23,400 --> 00:09:27,450 instead of writing just npm start, without the run. 185 00:09:27,450 --> 00:09:28,430 And so, let me go ahead 186 00:09:28,430 --> 00:09:30,127 and change the name here back to start. 187 00:09:30,127 --> 00:09:32,533 And then, we have start for production. 188 00:09:34,452 --> 00:09:35,513 So, npm start. 189 00:09:37,420 --> 00:09:38,653 The app is running now. 190 00:09:40,090 --> 00:09:43,820 And, indeed, our database connection was successful. 191 00:09:43,820 --> 00:09:45,150 So, great. 192 00:09:45,150 --> 00:09:47,900 And now, here we have our connections object 193 00:09:47,900 --> 00:09:50,450 and, as you see, there's a lot of stuff in here 194 00:09:50,450 --> 00:09:53,623 and we can see our username here, host, 195 00:09:54,900 --> 00:09:56,470 the password, of course. 196 00:09:56,470 --> 00:09:59,840 And, this stuff here doesn't really matter, of course. 197 00:09:59,840 --> 00:10:02,000 I just wanted to log it here 198 00:10:02,000 --> 00:10:05,653 just so we see that our connection was actually successful. 199 00:10:06,660 --> 00:10:08,903 And so, let's get rid of that. 200 00:10:09,900 --> 00:10:12,643 And, we can actually get rid of all this here as well. 201 00:10:15,140 --> 00:10:17,493 So, this is just a one-liner here. 202 00:10:19,420 --> 00:10:21,743 Oh yeah, just missing this parenthesis. 203 00:10:24,440 --> 00:10:27,470 Now, here, it's saying me that we declared this variable, 204 00:10:27,470 --> 00:10:30,353 but never used it, so let's, indeed, get rid of it. 205 00:10:31,990 --> 00:10:33,800 Now, just as a final step, 206 00:10:33,800 --> 00:10:36,070 let me show you how we could also connect 207 00:10:36,070 --> 00:10:38,230 to the local database, again, 208 00:10:38,230 --> 00:10:40,530 in case you are using that one. 209 00:10:40,530 --> 00:10:44,170 So, let's just duplicate this line, comment it out. 210 00:10:44,170 --> 00:10:47,060 So, this is the hosted database version 211 00:10:47,060 --> 00:10:51,523 and then here we would just have to put in the local one. 212 00:10:52,520 --> 00:10:56,080 So, that's DATABASE_LOCAL. 213 00:10:56,080 --> 00:10:57,890 Let's give it a save. 214 00:10:57,890 --> 00:11:00,933 And, we're also connected successfully to that one. 215 00:11:02,020 --> 00:11:04,470 So, that's just how you would do it in that case. 216 00:11:06,040 --> 00:11:07,530 But, as I said, in this course, 217 00:11:07,530 --> 00:11:09,470 we will actually use the hosted one, 218 00:11:09,470 --> 00:11:11,470 so that's the one that I'm keeping here. 219 00:11:12,600 --> 00:11:14,100 Actually, I'm deleting this one. 220 00:11:14,100 --> 00:11:15,350 We don't need it anymore. 221 00:11:16,470 --> 00:11:17,780 Now, of course, there could also 222 00:11:17,780 --> 00:11:20,470 be problems connecting to the database. 223 00:11:20,470 --> 00:11:22,810 For example, the host might be down 224 00:11:22,810 --> 00:11:25,700 or we might have some error in our connection string 225 00:11:25,700 --> 00:11:28,660 and, in that case, we should catch that error. 226 00:11:28,660 --> 00:11:30,120 But, we will leave error handling 227 00:11:30,120 --> 00:11:31,710 for a bit later in the course 228 00:11:31,710 --> 00:11:34,530 and so for now, I'm not having any catch method here. 229 00:11:34,530 --> 00:11:35,850 Just the then method here, 230 00:11:35,850 --> 00:11:37,743 assuming that everything works fine. 231 00:11:39,242 --> 00:11:41,280 And, now finally, I want to actually go ahead 232 00:11:41,280 --> 00:11:42,780 and delete the collection 233 00:11:42,780 --> 00:11:45,110 that we already created in our database 234 00:11:45,110 --> 00:11:48,360 just so that our Mongoose driver does not interfere 235 00:11:48,360 --> 00:11:52,470 with that in any way so that there's no problem there. 236 00:11:52,470 --> 00:11:55,430 And so, let's move back to Atlas here. 237 00:11:55,430 --> 00:11:56,930 Hit on our COLLECTIONS. 238 00:11:56,930 --> 00:12:00,633 And then, simply delete the collection from here. 239 00:12:01,860 --> 00:12:05,500 And now, we need to put in here the name of the collection 240 00:12:05,500 --> 00:12:08,930 just so we don't do any mistake here. 241 00:12:08,930 --> 00:12:12,750 So, drop and, all right. 242 00:12:12,750 --> 00:12:14,620 So, now we have an empty database here, 243 00:12:14,620 --> 00:12:17,990 ready to start filling with our data starting right 244 00:12:17,990 --> 00:12:19,553 in the next couple of videos. 19285

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