MongoDB
2023. 12. 13. 21:17ㆍNode.js Express
mongoose라는 모듈을 이용하면 MongoDB를 이용 할 수 있다
const mongoose = require('mongoose')
const connectDB = (url) => {
return mongoose.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
}
module.exports = connectDB
url을 가지고 db를 연결하는 모듈이다
const mongoose = require('mongoose');
const dataSchema = new mongoose.Schema({
title: {
type:String,
required:[true, 'Please provide name'],
minlength: 1,
maxlength: 100,
},
data: {
type:String,
},
})
module.exports = mongoose.model('data',dataSchema);
사용할 data의 schema를 정의한 모듈이다
const Data = require('../models/data')
const db_get = async (req, res) => {
const datas = await Data.find();
return res.status(200).render('list',{"datas": datas});
}
const db_post = async (req, res) => {
const title = req.body.title;
const data = req.body.data;
const newData = {"title":title, "data":data};
await Data.create(newData);
db_get(req, res)
}
const db_detail = async (req, res) => {
const id = req.params.id;
const data = await Data.findById({_id:id});
return res.status(200).render('detail',{"data":data});
}
const db_delete = async (req, res) => {
const id = req.params.id;
await Data.findByIdAndDelete({_id:id});
db_get(req, res)
}
const db_update = async(req, res) => {
const id = req.params.id;
const title = req.body.title;
const data = req.body.data;
await Data.findByIdAndUpdate({_id:id},{data:data, title:title});
db_detail(req, res)
}
module.exports = {db_get, db_post, db_detail, db_delete, db_update};
정의한 schema를 이용하여 db를 이용하는 function을 정의한 모듈이다
const express = require('express')
const router = express.Router();
const {db_get, db_post, db_detail, db_delete, db_update} = require('../controllers/db_controller');
router.get('/',db_get).post('/',db_post);
router.route('/:id').get(db_detail)
router.route('/delete/:id').post(db_delete);
router.route('/update/:id').post(db_update);
module.exports = router;
각각의 function을 알맞는 route에 배정한 모듈이다
const MongoStore = require('connect-mongo');
const connectDB = require('./db/connect');
app.use(session({
secure: false,
secret: process.env.SESSION_KEY,
resave: false,
saveUninitialized: true,
store: MongoStore.create({
mongoUrl: process.env.MONGO_URI,
dbName: "nodejs",
ttl : 30*60,
autoRemove: 'interval',
autoRemoveInterval : 10
}),
cookie: { secure: false , maxAge: 3600000 }
}))
app.use('/db', dbPage);
const port = process.env.PORT || 3000;
const start = async () => {
try {
await connectDB(process.env.MONGO_URI)
server.listen(port, () =>
console.log(`Server is listening on port ${port}...`)
);
} catch (error) {
console.log(error);
}
};
'Node.js Express' 카테고리의 다른 글
| Session (0) | 2023.12.13 |
|---|---|
| WebSocket (0) | 2023.12.13 |
| CSRF (0) | 2023.12.13 |
| Form Data (0) | 2023.12.13 |
| Node.js express Studying project (0) | 2023.12.11 |