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)
댓글 남기기