반응형
오늘은 noSQL중 하나인 mongoDB를 Nextjs server와 연동해보려 합니다!
한 번은 mongoDB도 사용해봐야겠죠?!
아래의 방법으로 mongoDB를 nodejs를 connect 할 수 있습니다.
이것을 통해 조회하는 방법은 앞으로 차차 적어보도록 하고 연결 스크립트만 알아보도록 할게요!
// mongoose dbConnect
import mongoose from 'mongoose';
const MONGODB_URI = process.env.MONGODB_URI;
if (!MONGODB_URI) {
throw new Error(
'Please define the MONGODB_URI environment variable inside .env.local',
);
}
let cached = global.mongoose;
if (!cached) {
cached = global.mongoose = { conn: null, promise: null };
}
export async function dbConnect() {
if (cached.conn) {
return cached.conn;
}
if (!cached.promise) {
const opts = {
useNewUrlParser: true,
bufferCommands: false,
};
cached.promise = mongoose.connect(MONGODB_URI, opts).then((mongoose) => {
return mongoose;
});
}
cached.conn = await cached.promise;
return cached.conn;
}
먼저 위의 스크립트는 mongoose를 이용한 방식이고, 아래는 mongodb를 이용하는 방식입니다!
요새는 mogoose를 많이쓰기때문에 위의 스크립트를 복붙해주시면 돼요!
아! 그리고 .env.local 파일을 생성하여 이곳에 MONGODB_URL을 적어주셔야해요!
물론 .env.local 파일은 gitignore에서 git에 푸쉬되지 않도록 막아줘야하구요!! 필수!!
// mongodb dbConnect
import { MongoClient } from 'mongodb';
const MONGODB_URI = process.env.MONGODB_URI;
const MONGODB_DB = process.env.MONGODB_DB;
if (!MONGODB_URI) {
throw new Error(
'Please define the MONGODB_URI environment variable inside .env.local',
);
}
if (!MONGODB_DB) {
throw new Error(
'Please define the MONGODB_DB environment variable inside .env.local',
);
}
let cached = global.mongo;
if (!cached) {
cached = global.mongo = { conn: null, promise: null };
}
export async function connectToDatabase() {
if (cached.conn) {
return cached.conn;
}
if (!cached.promise) {
const opts = {
useNewUrlParser: true,
useUnifiedTopology: true,
};
cached.promise = MongoClient.connect(MONGODB_URI, opts).then((client) => {
return {
client,
db: client.db(MONGODB_DB),
};
});
}
cached.conn = await cached.promise;
return cached.conn;
}
반응형
'백엔드' 카테고리의 다른 글
collection 조회 - mongoose (0) | 2022.02.22 |
---|---|
collection 조회 - mongodb connect (0) | 2022.02.21 |
CORS error : access-control-allow-origin (0) | 2022.02.20 |
사용중인 포트 KILL - (The Tomcat connector configured to listen on port 8080 failed to start) (0) | 2022.02.19 |