Study
mongoDB, mongoose
db는 프론트엔드와 직접적으로 연동시키지 않는다. 프론트엔드에서 db에 접근할 수 있다는 것은 모두가 볼 수 있다는 것이고, 그러면 보안성에 문제가 있다는 것이니깐. mongoDB와 백엔드를 연결한다.
서드파티 라이브러리
- express
- body-Parser
- nodemon
- mongodb
- mongoose
mongodb만을 사용하여 mongodb atlas에 연결하여 사용할 수도 있지만 connect이후 db에 연결하고, close해야되는 등 귀찮은 과정이 많은데 mongoose를 통해 이를 단순화할 수 있다.
기본 백엔드 작성하는 것처럼 작성하고, 미들웨어 함수를 짤 때 db와 연결한다.
mongoose를 사용하기 위해 model을 만든다. 객체느낌으로, 함수에서 인스턴스화 시킬 수 있다.
// product.js <- model
const mongoose = require('mongoose');
const productSchema = new mongoose.schema({
...
});
module.exports = mongoose.model('product',productSchema);
db와 데이터를 주고받는 과정은 비동기로 진행되니 async/await을 사용한다.
mongoose와 연결시키고, save(),find()를 통해 접근할 수 있다.
//mongoose.js
const mongoose = require('mongoose');
const product = require('./models/product');
const URL = 'mongodb+srv://<아이디>:<비밀번호>@cluster0-g8eu9.mongodb.net/<컬렉션이름>?retryWrites=true&w=majority'
mongoose.connect(URL);
const createProduct = async (req,res,next)=> {
const createProduct = new product({
...
});
const result = await createProduct.save();
res.json(result);
}
exports.createProduct = createProduct;
mongoose를 import 해서 사용하는 곳은 app.listen()
. then()에서 정상적으로 불러오면 실행시킨다.
database access, networkaccess를 설정해 database에 접근할 수 있다.