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

home2 게시판 Node.js, Express 게시판 DB와 연결된 get, post 요청 라우팅 하기

DB와 연결된 get, post 요청 라우팅 하기

  • 이 주제에는 4개 답변, 3명 참여가 있으며 john3 년, 10 월 전에 전에 마지막으로 업데이트했습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #8999

    이준상
    참가자

    localhost:8080/list 페이지를 routes 폴더에  있는 list.js 를 통해 보여주려 했고 다음과 같이 코드를 짰습니다.

     

    (server.js)

    app.use('/list', require('./routes/list.js'));

     

    (./routes/list.js)

    var router = require('express').Router();

    router.get('/', function(req,res){
        db.collection('post').find().toArray(function(error, result){
            if(error){return console.log(error)};
            console.log(result);
            res.render('list.ejs',{everyPosts : result});
        });
    });

    module.exports = router;

     

     

    이랬더니 다음과 같은 에러가 나옵니다

     

    ReferenceError: db is not defined

     

    routes 폴더에 넣지 않고 server.js 에서 get요청을 실행하면 잘 실행됩니다.

     

    이 에러의 해결 방법이 어떻게 될까요?

    #9007

    codingapple
    키 마스터

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

    db = client.db('todoapp');
    app.db = db; 이거 한줄을 추가해주시고

     

    router파일에서는

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

     

    #14499

    john
    참가자

    저렇게 해야 에러가 고쳐지는 이유가 뭔지 여쭤봐도 될까요?

    #14500

    codingapple
    키 마스터

    에러라기보다는 그냥 router.js 파일엔 db라는 변수가 없어서 그렇습니다 

    다른 파일에서 db라는 변수를 쓰게하는 과정입니다 

    #14503

    john
    참가자

    답변 너무 빨라서 체할뻔 했어요?ㅋㅋ 감사합니다

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

About

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

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

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