all is well!!
5. mongoose ๋ณธ๋ฌธ
๐ mongoose?
๊ณต์ mongoDB ๋๋ผ์ด๋ฒ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ์๋ ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๐ฃ mongoose์ ํน์ง
- mongoDB์์ ์ํธ์์ฉ์ ๊ฐํธํ๊ฒ ๋ง๋ค์ด์ค๋ค.
- ์คํค๋ง๋ฅผ ์ฌ์ฉํ๋ค. (์คํค๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ค๋ ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ ์ ์๊ฒ ํด์ฃผ๋๊ฒ.)
- mongoose๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ์ผ์ ํ ํ์์ด๋ ํ์ ๊ฐ์ถ ์ ํํ๋ ๋ฐ์ดํฐ๊ฐ ํ์ํ ๋ ์คํค๋ง๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์์ ํ๋๊ฒ ํจ์ฌ ๊ฐ๋จํด์ ์ข๋ค.
๐ฃ ๊ณต์ mongoDB ๋๋ผ์ด๋ฒ์ ๋ค๋ฅธ ์
const getUser = async (req, res, next) => {
const client = new MongoClient(url);
let users;
try{
// ์๋ฒ ์ฐ๊ฒฐ
await client.connect();
const db = client.db();
// collection์ ๊ฒ์ํด์ ๊ฐ์ ธ์ค๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด์๋ ์์ผ๋๊น ๋น๋๊ธฐ
// find() ๋ฉ์๋๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๋ฉ์๋
// toArray() ๋ฉ์๋๋ ๋ฐฐ์ดํํ๋ก ๋ฌธ์๋ฅผ ๊ฐ์ ธ์ค๊ฒ ํ๋ค.
users = await db.collection('users').find().toArray();
}
catch{
}
client.close();
res.json(users);
};
mongoDB๋๋ ์๋ก์ด ์ปฌ๋ ์ ์ ์์ฑํ ๋๋ง๋ค MongoClient๋ฅผ ์ฌ์ฉํ๊ณ connet()๋ฉ์๋๋ก ์ฐ๊ฒฐ์ ํด์ผํ๊ณ close() ๋ฉ์๋๋ฅผ ์จ์ ์ฐ๊ฒฐ ์ข ๋ฃ๊น์ง ์ค์ ํด์ค์ผ ํ์ด์ ์ข ๋ฒ๊ฑฐ๋ก์ด ํธ์ด๋ค.
const getUser = async (req, res, next) => {
let getUsers;
try {
getUsers = await UserModel.find().exec() // exec() : promiss๋ก ๋ฐํํ๊ธฐ์ํด ์ด๋ค.
}
catch (err) {
console.log(err);
return next(err); // ์ค๋ฅ๊ฐ ์๊ฒผ์๋ ์ฝ๋ ์คํ ์ค๋จ.
}
res.json(getUsers);
}
1. Mongoose๋ connect() ๋ฉ์๋ ํ๋๋ง ํ์ํ๋ค.
2. connect()์ ์ ๋ฌํ๋ฉด ๋ฐฑ์๋์ mongoDB ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์ ๋ชจ๋ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํด์ค๋ค. ๊ทธ๋์ ์ปฌ๋ ์ ๋ง๋ค๋๋ง๋ค ์ผ์ผํ ํจ์์์ connect()์ close() ๋ฉ์๋๋ฅผ ๋ฃ์ ํ์๊ฐ ์๋ค.
3. mongoose๊ฐ ์ปค๋ฅ์ ํ์ ์ฌ์ฉํด์ ์ฐ๊ฒฐ์ ์ด๊ณ ๋ซ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐฑ์๋๊ฐ ํญ์ ํจ์จ์ ์ผ๋ก ์ฐ๊ฒฐ๋๋๋ก ํด์ค๋ค.
4. mongoDB๋ก๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ปฌ๋ ์ ์ ์ฐธ์กฐํด์ ๋จ์ผ ๋ฌธ์๋ฅผ insertOne()์ผ๋ก mongoDB์ ์ถ๊ฐํ๊ณ ๋ค๋ฅธ ๋ด์ฉ๋ ์ถ๊ฐํ์ด์ผ ํ๋๋ฐ, Mongoose์๋ ์์๋ง ์์ฑํ๋ฉด ๋๋ค.
* ์ฐธ๊ณ
https://www.udemy.com/course/react-nodejs-express-mongodb-mern/learn/lecture/33745704#overview
'Node.js(express.js) + noSQL(mongoDB)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
4. SQL? noSQL? (0) | 2023.05.29 |
---|---|
3. mongoDB Atlas ์ค์ (0) | 2023.05.27 |
2. Express.js (0) | 2023.05.25 |
1. Node.js (0) | 2023.05.24 |