Next.js
진짜 지금은 Next.js의 격변기인지 저번주에 앱을 만들 때는 page.js를 이용했는데 어제 만들었을 땐 이제 index.js와 app.js로 바꼈다..
진짜 엄청 빠르게 바뀌고 있는 것 같아서 뭐 하기만 하면 공식문서를 들여다 보는 중이다.
몽고디비 홈페이지 가입후 무료로 이용해보자
데이터 베이스
도큐먼트 만들기
게시판을 위한 제목과 글을 document에 추가했다.
그러면 forum의 post 안에 title과 content를 가지고 있는 document 데이터가 하나 생긴것이다.
그러면 이제 몽고 db에 있는 데이터를 가지고 와보자
npm install mongodb
를 이용해서 프로젝트에 몽고디비의 라이브러리를 설치해주자
import { MongoClient } from 'mongodb'
const url = 'DBURL'
const options = { useNewUrlParser: true }
let connectDB
if (process.env.NODE_ENV === 'development') {
if (!global._mongo) {
global._mongo = new MongoClient(url, options).connect()
}
connectDB = global._mongo
} else {
connectDB = new MongoClient(url, options).connect()
}
export { connectDB }
컴포넌트에서 추가하는 것이 아닌 따로 파일을 둬서 추가하도록 만들었다.
import
export
해서 필요할 때마다 사용하자process.env.NODE_ENV === 'development'
) global
이라는 전역 변수 저장소에 보관해 주세요 라고 써져있는 것이다.이후
const db = (await connectDB).db('forum');
let result - await db.collection('post').find().toArray();
await connectDB
를 통해(물론 connectDB
는 import
를 상단에서 시켜주자) 데이터 연결을 가져온후 그 데이터 db중 forum을 db
라는 변수에 담는다collection('post')
를 통해 컬렉션을 선택하고 find().toArray();
로 저장하면 우리가 흔히 볼수 있는 데이터 객체로 확인 가능하다!여기서 let db
변수를 database.js
에 적어두고 export{db}
하면 더 쉽지 않을까 한다.
await
가 붙는 것들은 export
해서 쓰면 이상해질 수 있다.
사용하려면 top-level await라는 기능을 추가해서 사용할 수 있다고 하는데 아직 node.js 높은 버전에서만 가능하고 클라우드 서비스에서 버전을 제공 안해주면 쓰기 어렵다
그래서 현재는 일반적으로 사용하지 않음!
따라서 다른 데이터베이스 사용도 비슷하게
이 되겠다.