Jungmin Park

Link MongoDB Atlas&Node.js

Showing 1 changed file with 26 additions and 110 deletions
......@@ -3,18 +3,28 @@ var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
mongoose.connect('mongodb://root:root@localhost:27017/travelDB', {
dbName: 'travelDB',
useNewUrlParser: true,
useUnifiedTopology: true
}); // node앱을 mongoDB에 연결
//mongoDB express를 실행했을 때, username = root, password = root, Database = travelDB를 입력해서 연결 가능
var app = express();
const mongodb = require('mongodb');
const MongoClient = mongodb.MongoClient;
const url = 'mongodb+srv://hellowhales:qogudtjr`12@cluster0.7gz7l.mongodb.net/myFirstDatabase?retryWrites=true&w=majority';
// 터미널창 연결방법 mongo 'mongodb+srv://hellowhales:qogudtjr`12@cluster0.7gz7l.mongodb.net/myFirstDatabase?retryWrites=true&w=majority';
// db.festivals.find({"title":"가무악극으로 만나는 토요 상설공연"}) 검색방법
MongoClient.connect(url) //서버 열때 mongodb와 연결시키기
.then(client => {
console.log('mongo connected');
console.log(client);
})
.then(app.listen(3000, () => {
console.log('3000 port on');
}))
.catch(err => console.log(err));
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
// view engine setup
......@@ -22,108 +32,6 @@ app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
var TravelSchema = mongoose.Schema({ //Travel이라는 스키마 생성(javascript 객체 생성자와 유사)
name: String,
address: String,
weather: String,
date: String,
url: String,
pos: String
});
const toTravel = mongoose.model('Travel', TravelSchema); // 스키마를 model로 정의 -> collection 명칭을 mongoose에서는 단수로 사용하지만
// mongodb에 저장될 때에는 복수 + 소문자로 저장됨 여기선 travels로 저장되므로 db.travels라고 호출해야 정상적인 값 얻기 가능
// db.travels.find()처럼 사용
var JeonJu = new toTravel({
name: '전주 한옥마을',
address: '전라북도 전주시 완산구 풍남동3가 기린대로 99',
weather: '맑음',
date: '2021-11-14'
});
var HongDae = new toTravel({
name: '서울 홍대거리',
address: '서울특별시 마포구 와우산로 94(상수동) 홍익대학교',
weather: '흐림',
date: '2021-11-15'
});
var Busan = new toTravel({
name: '부산 해운대',
address: '부산광역시 해운대구 중동',
weather: '우박',
date: '2021-11-16'
});
var Jeju = new toTravel({
name: '제주도',
address: '제주특별자치도 제주시 세종로 88',
weather: '비',
date: '2021-11-17'
});
// Travel 객체를 new로 생성해서 값을 입력해줌
JeonJu.save(function (error, data) {
if (error) {
console.log(error);
}
else {
console.log('saved!');
}
});
toTravel.insertMany([Seoul, Busan, Jeju], function (err) {
if (err) {
console.log(err);
} else {
mongoose.connection.close();
console.log("Successfully saved to travelDB");
}
});
toTravel.find(function (err, travels) { // toTravel이라는 모델에 저장된 데이터 전체 불러오기 = find(), 데이터 하나 가져오기 = findOne()
console.log('---READ ALL---');
if (err) {
console.log(err);
} else {
fruits.forEach(function (element) {
console.log(travels.name); // 각각의 이름(지명) 출력
});
}
});
const q0 = toTravel.find();
toTravel.updateOne({ // mongoDB에 저장된 document 내용 수정, 첫번째 파라미터로 수정할 document 선택, 두 번째 파라미터로 수정할 내용을 입력
_id: "5e859d8cef3a5d234c6c19c0"
}, {
name: "제주도"
}, function (err) {
if (err) {
console.log(err);
} else {
console.log("Successfully updated the document");
}
});
toTravel.deleteOne({ // mongoDB에 저장된 document 삭제. 첫 번째 파라미터로 삭제할 document를 선택하여 삭제
_id: "5e86a7a216b28f3b08a88755"
}, function (err) {
if (err) {
console.log(err);
} else {
console.log("Successfully deleted");
}
});
toTravel.find(function (error, travels) { //전체 가져오기
console.log('--- Read all ---');
if (error) {
console.log(error);
} else {
console.log(travels);
}
});
app.use(logger('dev'));
app.use(express.json());
......@@ -150,5 +58,13 @@ app.use(function (err, req, res, next) {
res.render('error');
});
app.get('*', function (req, res) {
//DB에서 json형태의 데이터를 유저가 접속하자마자 바로 불러와서 frontend에 뿌려주기
// 렌더링할 때 frontend로 변수 뿌려주기
res.render("asd.html");
});
module.exports = app;
//유저 로그인할때 모든 여행지에 대한 정보를 DB에서 싹다 불러옴 페이지 렌더링할때 data 뿌려줌
\ No newline at end of file
......