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

home2 게시판 Node.js, Express 게시판 [nodemon] app crashed 에러.

[nodemon] app crashed 에러.

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

    Michelle
    참가자

    -- server.js 파일입니다 --

    const express = require('express');
    const app = express();
    const bodyParser = require('body-parser');
    app.use(bodyParser.urlencoded({extended:true}));

    const MongoClient = require('mongodb').MongoClient;
    var db;
    MongoClient.connect('mongodb+srv://admin:flwp12#@cluster0.ecin2.mongodb.net/todoapp?retryWrites=true&w=majority',function(에러, client) {
    // if(에러) {return console.log(에러)};

    db = client.db('todoapp');
    app.listen(8080, function() {
    console.log('listening on 8080');
     
    });
    })
     

    app.get('/pet', function(request, response) {
    response.send('pet 페이지 입니다. 반갑습니다.')
    })
    app.get('/beauty', function(request, response) {
    response.send('beauty 페이지입니다.')
    })
    app.get('/', function(request, response) {
    response.sendFile(__dirname + '/index.html')
    })
    app.get('/write', function(request, response) {
    response.sendFile(__dirname + '/write.html')
    })

    app.post('/add', function(req, res) {
    res.send('전송완료');
    console.log(req.body.title)
    console.log(req.body);
     
    })

     

    --- 문제 --

    db=client.db('todoapp')이부분을  넣기전까지는 서버가 잘 돌아갑니다.

    접속 메세지도 콘솔에 잘 나오구요. 근데 이부분을 넣으면서부터 서버가 실행되지 않고있습니다. 아이디/비번도 정확하구요 오타도 다 확인해 봤습니다.

     

     

    -- 에러 메세지 --

    (node:74891) Warning: Accessing non-existent property 'MongoError' of module exports inside circular dependency
    (Use node --trace-warnings ... to show where the warning was created)
    /Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/utils.js:687
    throw error;
    ^

    TypeError: Cannot read property 'db' of undefined
    at /Users/user/Documents/205_스터디/004_node/todoapp/server.js:15:17
    at /Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/utils.js:684:9
    at /Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/mongo_client.js:226:23
    at /Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/operations/connect.js:286:21
    at parseSrvConnectionString (/Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/core/uri_parser.js:50:12)
    at parseConnectionString (/Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/core/uri_parser.js:594:12)
    at connect (/Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/operations/connect.js:284:3)
    at /Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/mongo_client.js:225:5
    at maybePromise (/Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/utils.js:681:3)
    at MongoClient.connect (/Users/user/Documents/205_스터디/004_node/todoapp/node_modules/mongodb/lib/mongo_client.js:221:10)
    [nodemon] app crashed - waiting for file changes before starting...
    어제 결제하고 하루종일 재밌게 들었습니다. 여기에서 진도가 나가지 않아서 밤새 서치만 하다가 글 올려봅니다. 도움 부탁드립니다.

    몽고db는 강사님것과 똑같이 3.6.4 깔았구요. mac입니다.
    노드몬은 그냥 설치하고는 실행이안되서 찾아보니
    npx nodemon server.js 로 했더니 실행이 잘 되고 있습니다. 

    바쁘시겠지만 한번 봐주시면 감사하겠습니다.

    #28392

    codingapple
    키 마스터

    접속 url이 틀린것 같습니다 cluster0.ecin2.mongodb.net/todoapp? 여기 todoapp 자리에 컬렉션이름말고 거기서 만든 데이터베이스 이름이 들어가있는지 잘 확인합시다 

    #28628

    Michelle
    참가자

    네, 안녕하세요. 강사님 답변감사합니다.

    강의중에 만드신 DB-name을 todoapp으로 하셔서 저도 똑같이 했거든요.

    todoapp이 DB name이 아닌가요?

    #28744

    codingapple
    키 마스터

    db = client.db('todoapp'); 말고 db = client 로 바꿔봅시다 

    #28805

    Michelle
    참가자

    강사님, 감사합니다.
    그렇게 바꾸니까 서버가 정상적으로 실행됩니다~!

    1. 혹시 무슨 차이인지 간단하게 설명 부탁드려도 될까요 ^^

    2. 그리고, db=client윗부분에
    if(에러) {return console.log(에러)}; 
    이 줄을 넣으면

    [nodemon] clean exit - waiting for changes before restart
    위와같은 문구가 초록색으로 뜨면서 서버가 실행되지않습니다.
    이부분 이유도 혹시 알 수있을까요?

    일단, if(에러) 이부분은 주석문 처리하고 공부 하겠습니다.

    이부분 이후로 멈췄는데 강사님 덕분에 오늘 마저 할 수있겠습니다~! 감사합니다~!

    #28837

    codingapple
    키 마스터

    접속 url에 db이름이 표기되어있으면 .db('todoapp') 을 명시안해줘도 되나봅니다 

    if문은 db접속시 에러나면 중지하고 에러출력해달라는 뜻입니다 에러없으면 잘 실행될걸요 

    #29986

    Michelle
    참가자

    저 이거 잘해결되었어요. 

    소스는 원래 처음소스로 고쳤구요 문제되는부분에는 database name이 아니라 프로젝트네임을 넣는거였어요.

    저는 처음에 프로젝트 생성할때 자동생성으로해서 project0이 였어요. 이거로 바꿔서 여러개 만즐어 봤는데 잘됩니다 감사합니다^^

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

About

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

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

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