본문 바로가기
카테고리 없음

mongo DB + node js 연결 (express 이용해서 read , write 해 보기)

by 준형코딩 2022. 1. 20.

 

기본적인 node js 세팅과 mongo db 세팅은 생략합니다

 

+ express 공식홈페이지 문서와 mongodb 공식홈페이지 문서를 참고하였습니다.

 

const { MongoClient } = require("mongodb");





// mongodb 사용자 db와 collection uri 입니다 : 다음에 설정한 비밀번호를 넣으시면 됩니다
const uri =
  "mongodb+srv://singmeta:<password>@cluster0.eqbzf.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";

// client에 mongoclient 정의
const client = new MongoClient(uri, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});



// express 선언하고 port 넘버 할당

const express = require("express");
const app = express();
const port = 3000;


// monogo db write 라우트  - Neapolitan pizza , round를 몽고디비에 collection.insertOne을 통해서 입력시켜준다
app.get("/write", (req, res) => {
  res.send("<h1>mongodb write function</h1>");

  client.connect(async (err) => {
    const collection = client.db("singmeta").collection("singmeta");

    // perform actions on the collection object

    const doc = { name: "Neapolitan pizza", shape: "round" };
    const result = await collection.insertOne(doc);
    console.log(`A document was inserted with the _id: ${result.insertedId}`);

    client.close();
  });
});


//mongo db read 라우트 - junhyeong pizza를 collection에서 찾아서 cursor에 넣어주고 배열화 시켜서 console.log를 찍어준다
app.get("/read", (req, res) => {
  res.send("mongodb read function!");

  client.connect(async (err) => {
    const collection = client.db("singmeta").collection("singmeta");
    const cursor = collection.find({ name: "junhyeong pizza" });
    const allValues = await cursor.toArray();

    await console.log(allValues);
    await console.log("this is test");

    await console.log("helloworld");
    // perform actions on the collection object

    client.close();
  });
});

// 할당한 port 넘버로 서버를 작동시킨다.

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});