[MEMO APP] Back-end/ DB์ฐ๊ฒฐ (2)
๐จ๐ป DB์ฐ๊ฒฐ (2)
๐ MongoDB์ ์๋ฒ์ฑ์ ์ฐ๊ฒฐ์์ผ์ฃผ๊ธฐ.
์ง๋๋ฒ ํฌ์คํ ๋์๋ MongoDB๋ฅผ ์ค์นํด์ฃผ์๊ณ ์ด DB์ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ๊ณ ์๋ ์๋ฒ์ ์ฐ๊ฒฐ์ ๋์์ฃผ๋ Mongoose๋ผ๋ ๋ชจ๋๋ ์ค์นํด ์ฃผ์์ต๋๋ค.
๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์๋ mongoose๋ฅผ ์ฐ๋ฆฌ ์๋ฒํ์ผ์์ ๋ถ๋ฌ์ค๊ณ ์ค์ ๋ก ์ฐ๊ฒฐ๊น์ง ํด์ฃผ๋ ์์ ์ ์งํํด์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
require('mongoose') ํ๋ค์์ index.js์์ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ์์ผ์ฃผ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง, ์ด๋ ๊ฒ ๋ชจ๋ ์์ ๋ค์ ํ ํ์ผ์์ ์์ฑํ๋ฉด์ index.js ์์ค์ฝ๋๊ฐ ๊ธธ์ด์ ธ์ ๋ชจ๋ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ธฐ ์ด๋ ค์์ง ๋ฟ๋๋ฌ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ DB์ ๊ด๋ จ๋ ์์ ์ src ํด๋์์ dbํด๋๋ฅผ ๋ง๋ค์ด์ ๊ทธ ์์์ ์์ ์ ํด์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋ก ์์ฑํ db ํด๋์์๋ index.js ํ์ผ์ด ์๊ณ ์ด ํ์ผ์์๋ DB ์ฐ๊ฒฐ๊ณผ ํด์ ์ ๊ด๋ จ๋ ํจ์๋ค์ ์์ฑํด ์ธ๋ถ์์ ์ฝ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด ์ฃผ๊ฒ ์ต๋๋ค.
(์ด๋ ๊ฒ ํ๋ ์ด์ ๋, DB์ ์ ๊ทผ์ ํ ํ์ผ์์๋ง ๊ฐ๋ฅํ๊ฒ ์๋๋ผ ํ์์ ๋ฐ๋ผ ์ฌ ์์ฉํ ์ ์๋ ์์ค์ฝ๋๋ก ๋ง๋ค์ด ๋ค๋ฅธ๊ณณ์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅ์ผ ํ๊ธฐ ์ํจ์ ๋๋ค.)
const mongoose = require('mongoose');
const mongoUri = 'mongodb://localhost:27017/whereCar';
module.exports = (function () {
mongoose.promise = global.Promise;
return {
connect() {
mongoose.connect(mongoUri, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).then(
() => {
console.log('โ
Successfully connected to mongodb!');
},
).catch((e) => {
console.error(e);
});
},
};
}());
mongoose๋ connect๋ผ๋ ๋ฉ์๋๋ฅผ ์ง์ํด์ฃผ๋ฉฐ, ํ๋ผ๋ฏธํฐ ๊ฐ์ผ๋ก๋ ํด๋น DB์ ์์น๊ฐ์(mondoUri) ๋ฃ์ด์ฃผ๊ณ ๊ทธ ๋ค์์๋ ์ฌ๋ฌ ์ต์ ๋ค์ ๋ฃ์ด์ฃผ๊ฒ ๋ฉ๋๋ค.
์์ ํจ์๋ ์ผ๋ฐ ๋ฐฉ์๊ณผ๋ ๋ค๋ฅด๊ฒ connectํจ์๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค๋ ํน์ฑ์ ์ด์ฉํ์ฌ [.then] ๊ณผ [.catch] ๋ผ๋ ๊ธฐ๋ฅ์ ํตํด ์ฐ๊ฒฐ์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ก๋์ง ์ฌ๋ถ๋ฅผ ํ๋ฉด์ ๋์์ฃผ๊ฒ ํฉ๋๋ค.
์กฐ๊ธ ์์ฌ์ด์ ์ mongoUri ์ ๊ฐ์ด ์ธ๋ถ์ ์๋ ค์ ธ์ ์๋๋ ๋ถ๋ถ๋ค ์ ๋๋ค. ๊ทธ๋์ ์ด๋ถ๋ถ์ .env ํ์ผ๋ก ์ด๊ฒจ์ ์ฌ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด์ src ํด๋ ์์ index.js์์ ์ฐ๋ฆฌ๊ฐ ๋ฐฉ๊ธ ์์ฑํ ํ์ผ๋ง ํธ์ถํ์ฌ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์๋์ ์ฌ์ง์ฒ๋ผ ๋ง์ด์ฃ
์ด์ ๋ค์ํ๋ฒ ์๋ฒ๋ฅผ ์คํ์์ผ ๋ณด๋๋กํ ๊ฒ์.
์๋์ ์ฌ์ง์ฒ๋ผ mongoDB๊ฐ ์ฐ๊ฒฐ์ด ์ฑ๊ณตํ๋ค๋ ๋ฉ์์ง๊ฐ ๋ฌ๋ค๋ฉด ์ฑ๊ณต์ ๋๋ค.
์ฌ๊ธฐ๊น์ง๊ฐ DB์ฐ๊ฒฐ์ํ๋ ์์ ์ด์๊ณ ๋ฌด์ฌํ ์ด๋ฅผ ๋ง์น์์ต๋๋ค. ๊ทธ๋ ๋ค๊ณ DB๊ด๋ จ ์์ ์ด ๋ชจ๋ ๋๋๊ฒ์ ์๋๋๋๋ค.
DB๊ด๋ จ ์ค๊ณ์์ ์ ํด์ฃผ์ด์ผํ๋๋ฐ์. ๋ณดํต์ ์คํค๋ง ์ค๊ณ๊ฐ์๊ฒ๋ค์ ํด์ฃผ์ด์ผ ํ์ง๋ง...
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ mongoDB๋ ๋ค๋ฅธ DB์๋ ๋ค๋ฅด๊ฒ ์คํค๋ง๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค. ์ ์๋๊ฐ๋ฅผ ์ค๋ช ํ๊ธฐ ๋ณด๋จ ์ด๋ฅผํตํด ์ป๋ ์ด์ ์ ๋ง์๋๋ฆฌ์๋ฉด, ๊ฐ์ฒด๋ ๋ฆฌ์คํธ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ํ ์นผ๋ผ์ ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด์ฃ .
์คํค๋ง๋ฅผ ์์ฑํ๋ ๋์ ์ mongoDB๋ model์ด๋ผ๋ ํ์ผ์ ๋ง๋ค์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ๊ฐ๋ ๋ฐ์ดํฐ์ ๋ํ ํ์(ํ)์ ์ง์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
๊ณ ๋ก ๋ค์ ํฌ์คํ ์์ ์ด๋ฌํ ์์ ๋ค์ ํด์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
'Gorilla-Kim > Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MEMO APP] Back-end/ REST API-Register (1) (0) | 2020.03.18 |
---|---|
[MEMO APP] Back-end/ DB์ฐ๊ฒฐ (3) (0) | 2020.03.18 |
[MEMO APP] Back-end/ DB์ฐ๊ฒฐ (1) (0) | 2020.03.16 |
[MEMO APP] Back-end/ ๋ผ์ฐํ (2) (0) | 2020.03.15 |
[MEMO APP] Back-end/์๋ฒ๊ตฌ์ถ (2), ๋ผ์ฐํ (1) (0) | 2020.03.13 |