• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 라우터할때 db는 어떻게 하는지 모르겠습니다

라우터할때 db는 어떻게 하는지 모르겠습니다

8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 글쓴이
  • #19538

    윤지빈
    참가자

    라우터를 하고싶지만 db가 제 발목을 붙잡습니다.. 요청.app.db를 해도 안되요...ㅠㅠㅠ

    #19541

    codingapple
    키 마스터

    server.js 에서 MongoClient.connect() 하는 곳 안에다가 

    db = client.db('todoapp');
    app.db = db; 이거 하나 추가해주시고

     

    router파일에서는

    요청.app.db.collection 어쩌구 하시면 되겠습니다  

     

    #19569

    윤지빈
    참가자

    -server.js-

    //몽고DB 연결

    MongoClient.connect(process.env.DB_URL, (err, client) => {
      if (err) {
        return console.log(err);
      }
      db = client.db("todoapp");
      app.db = db;
      app.listen(process.env.PORT, () => {
        console.log("listening on 3000");
      });
    });module.exports = app

     

    -list.js-

    const router = require('express').Router()

    router.get('/list', (req, res) => {
        console.log(req.body.user);
        req.app.db.collection('memo').find().toArray()
    })

    module.exports = router;

    이런식으로 썻는데 안되네요...

    #19578

    codingapple
    키 마스터

    어떤 에러가 뜹니까 

    #19591

    윤지빈
    참가자

    에러는 나오지 않지만 데이터가 출력되지 않고 undefined가 나옵니다

    #19597

    codingapple
    키 마스터

    라우터파일에서 req.app.db 출력해봤을 때 뭔가 있으면 제대로 잘 된 것입니다

    db데이터가 undefined로 안나오는건 db에서 데이터 뽑는 문법이 잘못된것이 아닐까요 

     

    #19693

    윤지빈
    참가자

    toArray를 사용할 때 toArray((result)=>{})이렇게 쓰면 undefined가 출력되고 toArray((err,result)=>{})이렇게 사용하면 데이터가 정상적으로 나오는지가 궁금합니다...

     

    #19700

    codingapple
    키 마스터

    .find().toArray((err,result)=>{})

    그렇게 쓰는게 맞습니다 

8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠