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

home2 게시판 Node.js, Express 게시판 [에러] app crashed - waiting for file changes before starting...

[에러] app crashed - waiting for file changes before starting...

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

    조우제
    참가자
    list 페이지에서 글제목 클릭해서 detail 페이지 클릭했을 때 나는 에러가 나는데 도움 부탁드립니다.  db 연결은 잘 됩니다.
    db connected!
    running on 8080
    BSONError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer
        at new ObjectId (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\bson\lib\bson.cjs:2055:23)
        at C:\Users\jowu7\Dropbox\programming\nodejs\server.js:49:66
        at Layer.handle [as handle_request] (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\layer.js:95:5)      
        at next (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\route.js:149:13)
        at Route.dispatch (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\route.js:119:3)
        at Layer.handle [as handle_request] (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\layer.js:95:5)      
        at C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\index.js:284:15
        at param (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\index.js:365:14)
        at param (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\index.js:376:14)
        at Function.process_params (C:\Users\jowu7\Dropbox\programming\nodejs\node_modules\express\lib\router\index.js:421:3)
    
    
    -----[server.js  코드]-----------------------------------------------------------------
    
    const express = require('express');
    const app = express();
    app.use(express.static(__dirname + '/public'));
    app.set('view engine', 'ejs');
    app.use(express.json());
    app.use(express.urlencoded({extended:true}));
    const { MongoClient, ObjectId } = require('mongodb');
    let db;
    const url = 'mongodb+srv://<아이디, 비번>@test-mdb-cluster.g7dk7yd.mongodb.net/?retryWrites=true&w=majority&appName=test-mdb-cluster';
    new MongoClient(url).connect().then((client)=>{
        console.log("db connected!")
        db = client.db('forum');
        app.listen(8080, ()=>{
            console.log('running on 8080')
        });
    }).catch((err)=>{
        console.log(err)
    })
    app.get('/news', (requests, responses)=>{
        db.collection('post').insertOne({title: 'title 001'})
    })
    app.get('/', (requests, responses)=>{
       // responses.send('homepage!')
    })
    app.get('/list', async (requests, responses)=>{
        let result = await db.collection('post').find().toArray();
        //console.log(result);
        responses.render('list.ejs', { posts: result });
    })
    app.get('/write', (requests, responses)=>{
        responses.render('write.ejs');
    })
    app.post('/add', async (requests, responses)=>{
        console.log(requests.body);
        await db.collection('post').insertOne({title:requests.body.title, content:requests.body.content});
        responses.redirect('/');
    })
    app.get('/detail/:id', async (requests, responses)=>{
        try {
            let result = await db.collection('post').findOne({ _id : new ObjectId(requests.params.id)})
        //console.log(requests.params);
            responses.render('detail.ejs',{ result : result });
        } catch(e) {
            console.log(e);
            responses.status(404).send('strange url')
        }
    })    
    app.get('/edit/:id', async (requests, responses)=>{
        let result = await db.collection('post').findOne({_id: new ObjectId(requests.params.id) })
        console.log(result)
        responses.render('edit.ejs', {result: result})
    })
    app.post('/edit/:id', async (requests, responses)=>{
        
        await db.collection('post').updateOne({_id: new ObjectId(requests.params.id) }, {$set : {title: requests.body.title, content : requests.body.content }})
        console.log(result)
        responses.render('edit.ejs', {result: result})
    })
    
    -------[list.ejs code]-----------------------------------------------
    
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <link href="main.css" rel="stylesheet">
    </head>
    <body class="grey-bg">
        <%- include('nav.ejs') %>
        <div class="white-bg">
        <% for (let i = 0; i < posts.length; i++) { %>
            <div class="list-box">
                <h4>
                    "><%= posts[i].title %>
                    
                    ">✏️
                </h4>
                <p><%= posts[i].content %></p>
            </div>
        <% } %>
        </div>
    </body>
    </html>
    
    -----[detail.ejs code]----------------------------------------------
    
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <link href="main.css" rel="stylesheet">
    </head>
    <body class="grey-bg">
        <%- include('nav.ejs') %>    
        <%= JSON.stringify(result) %>
        <div class="detail-bg">
          <h4><%= result.title %></h4>
          <p><%= result.content %></p>
        </div>
    </body>
    </html>
    • 이 게시글은 조우제에 의해 1 년, 1 월 전에 수정됐습니다.
    • 이 게시글은 조우제에 의해 1 년, 1 월 전에 수정됐습니다.
    • 이 게시글은 조우제에 의해 1 년, 1 월 전에 수정됐습니다.
    #123625

    codingapple
    키 마스터
    /main.css로 경로바꿔봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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