A. 몽고 DB 윈도우 설치 및 실행
[MongoDB] 몽고디비 GUI 개발/관리도구 Studio 3T 설치 (Robo 3T)
1) 윈도우 설치
Mongodb 설치Permalink
1. Mongodb 홈페이지 접속 후 다운로드Permalink
공식 홈페이지 : https://www.mongodb.com/try/download/community
원하는 버전 선택 후 msi 파일로 다운로드
2. 설치파일 실행Permalink
경로를 커스텀 하지 않았다면 C:\Program Files\MongoDB 경로에 설치가 됨.
(선택) 3. 환경변수 설정Permalink
선택사항. 매번 몽고DB 설치 경로(C:\Program Files\MongoDB)로 이동해서 명령어를 날려도 상관 없으면
스킵해도 상관 없음.
어느 경로에서나 몽고DB를 실행하고 싶다면 필요.
내 컴퓨터 -> 속성 -> 고급 시스템 설정 -> 환경 변수
Path 변수에 C:\Program Files\MongoDB\Server\ {버전} \bin 추가
4.명령 프롬프트(CMD) 창에서 Mongodb 실행 및 data/db 디렉토리 생성Permalink
실행 -> CMD
3의 환경변수 설정을 했다면 어떤 경로에서나 실행 가능
변수 설정 안했다면 mongodb 설치 경로로 가서 실행 가능
서버 실행Permalink
mongod
서버 접속Permalink
mongo
별 다른 작업 없이 mongod 명령어로 서버 실행 할 경우 아마 Exception이 발생 할 것이다.
내용은 Data 경로가 없다는 내용. 쉘에서 mkdir Data/db/ 생성해주든, 해당 경로가서 마우스 우클릭으로 새 폴더 생성해주던 상관 없음.
중요 : 실행 오류시
다음과 같이 디렉토리를 생성해 준다. C:\Data\db
5.확인 (웹브라우저)Permalink
웹브라우저에서 http://localhost:27017 접속
It looks like you are trying to access MongoDB over HTTP on the native driver port.
위와 같은 문구가 나온다면 정상.
Mongodb의 기본 포트는 27017
2 ) 몽고 DB 클라우드 설치 시
MongoDB 무료로 사용하기 - MongoDB Atlas
3) 몽고 DB 툴로 연결 할 경우
로컬일 경우 : mongodb://localhost:27017
클라우드일 경우 : mongodb+srv://macaronics:<password>@mongo-macaronics.y37mjuf.mongodb.net/test

몽고DB 연결 참조 : https://velog.io/@dev_cecy/NODE.JS-MONGO-DB-연동하기-FEAT.-EXPRESS-MONGOOSE
4) nodejs 몽고 DB 연결 라이브러리 설치
$ npm install mongoose
nodejs/mongodbURI.js
const mongodbURI = "mongodb+srv://macaronics:<password>@mongo-macaronics.y37mjuf.mongodb.net/test"; module.exports = mongodbURI;
nodejs/mongodb.js
const express = require('express')
const app = express()
const port = 5000
const mongodbURI = require('./mongodbURI')
const mongoose = require("mongoose");
// MongoDB 연결 1
// '단' 하나의 데이터베이스 연결 시 유효.
mongoose.connect(
mongodbURI,
// MongoDB url
// {
// useNewUrlParser: true,
// useUnifiedTopology: true,
// useCreateIndex: true,
// useFindAndModify: false,
// }
// options
// MongoDB 5 버전부터 useNewUrlParser 옵션을 사용해주지 않으면 에러가 뜹니다.
//Mongoose 6 사용으로 에러 발생시.
//useNewUrlParser, useUnifiedTopology,
//useFindAndModify 및 useCreateIndex는 더 이상 지원되지 않는 옵션입니다.
//Mongoose 6은 항상 useNewUrlParser, useUnifiedTopology 및 useCreateIndex가 true이고
// useFindAndModify가 false인 것처럼 작동합니다.코드에서 이러한 옵션을 제거하십시오.
).then(() => console.log("MongoDB Connected...")).catch(err => console.error("에러 :", err));
app.get('/', (req, res) => {
res.send('Hello World! 안녕하세요.')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
});
연결 테스트 확인
$ node nodejs/mongodb.js
B. 몽고 DB Session Store 설정
connect-mongodb-session
https://www.npmjs.com/package/connect-mongodb-session
설치 :
$ npm i connect-mongodb-session
var express = require('express');
var session = require('express-session');
var MongoDBStore = require('connect-mongodb-session')(session);
var app = express();
var store = new MongoDBStore({
uri: 'mongodb://localhost:27017/connect_mongodb_session_test',
collection: 'mySessions'
});
// Catch errors
store.on('error', function(error) {
console.log(error);
});
app.use(require('express-session')({
secret: 'This is a secret',
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7 // 1 week
},
store: store,
// Boilerplate options, see:
// * https://www.npmjs.com/package/express-session#resave
// * https://www.npmjs.com/package/express-session#saveuninitialized
resave: true,
saveUninitialized: true
}));
app.get('/', function(req, res) {
res.send('Hello ' + JSON.stringify(req.session));
});
server = app.listen(3000);
적용하기
app.js
const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const nunjucks = require('nunjucks');
const app = express();
const session = require('express-session');
const MySQLStore = require('express-mysql-session')(session);
const MongoDBStore = require('connect-mongodb-session')(session);
const FileStore = require('session-file-store')(session);
const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
const cookieRouter = require('./routes/cookies/index');
const sessionRouter = require('./routes/session/index');
// app.use(session({
// secret: 'secret key', // 암호화
// resave: false,
// saveUninitialized: true,
// cookie: {
// httpOnly: true,
// },
// //store: new FileStore() // 세션 객체에 세션스토어를 적용
// }));
// session DB 저장 방식 - session 테이블이 자동 생성되고 세션이 passport의해 저장 된다.
// app.use(session({
// secret: '12312dajfj23rj2po4$#%@#',
// resave: false,
// saveUninitialized: true,
// store: new MySQLStore({
// host: 'localhost',
// port: 3306,
// user: 'opentutorials',
// password: '1111',
// database: 'opentutorials'
// })
// }));
//몽고 MongoDBStore 설정
app.use(session({
secret: '12312dajfj23rj2po4$#%@#',
resave: false,
saveUninitialized: true,
store: new MongoDBStore({
uri: 'mongodb://localhost:27017/take-ndoejs',
collection: 'sessionStore'
})
}));














댓글 ( 4)
댓글 남기기