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

home2 게시판 Node.js, Express 게시판 쇼핑몰철머 상세페이지를 만들어보자 (URL parameter)

쇼핑몰철머 상세페이지를 만들어보자 (URL parameter)

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

    Heok Joon
    참가자
    <!DOCTYPE html>
    <html>
     <head>
    <!-- Required meta tags -->
     <meta charset="utf-8" />
     <meta
    name="viewport"
    content="width=device-width, initial-scale=1, shrink-to-fit=no"
     />
    <!-- Bootstrap CSS -->
     <link
    rel="stylesheet"
    href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
    integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn"
    crossorigin="anonymous"
     />
     </head>
     <body>
     <nav class="navbar navbar-expand-lg navbar-light bg-light">
     Navbar
     <button
    class="navbar-toggler"
    type="button"
    data-toggle="collapse"
    data-target="#navbarNav"
    aria-controls="navbarNav"
    aria-expanded="false"
    aria-label="Toggle navigation"
     >
     <span class="navbar-toggler-icon"></span>
     </button>
     <div class="collapse navbar-collapse" id="navbarNav">
     <ul class="navbar-nav">
     <li class="nav-item active">
     <a class="nav-link" href="#"
     >Home <span class="sr-only">(current)</span></a
     >
     
     <li class="nav-item">
     Features
     
     <li class="nav-item">
     Pricing
     
     <li class="nav-item">
     Disabled
     
     
     </div>
     </nav>
     <h4>상세페이지</h4>
     <h4>제목: 2번게시물의 <%= data.이름 %></h4>
     <h4>제목: 2번게시물의 <%= data.비번 %></h4>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
     <script
    src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF"
    crossorigin="anonymous"
     ></script>
     </body>
    </html>
    const express = require("express");
    const app = express();
    const bodyParser = require("body-parser");
    const { Db } = require("mongodb");
    app.use(bodyParser.urlencoded({ extended: true }));
    const MongoClient = require("mongodb").MongoClient;
    app.set("view engine", "ejs");
    var db;
    MongoClient.connect(
    "mongodb+srv://admin:asdf1234@cluster0.cvoub.mongodb.net/?retryWrites=true&w=majority",
    function (에러, client) {
    if (에러) return console.log(에러);
    db = client.db("todoapp");
    app.listen(8000, function () {
    console.log("listening on 8000");
     });
     }
    );
    app.get("/", function (要請, 応答) {
    //pet으로 접속하면 ..
    応答.sendFile(__dirname + "/index.html");
    });
    app.get("/write", function (req, 応答) {
    応答.sendFile(__dirname + "/write.html");
    });
    //어떤사람이 /add 경로로 POST 요청을 하면 .. ??을 해주세요
    app.post("/add", function (요청, 응답) {
    응답.send("전송완료");
    db.collection("counter").findOne(
     { name: "게시물갯수" },
    function (에러, 결과) {
    console.log(결과.totalPost);
    var 총게시물갯수 = 결과.totalPost;
    db.collection("post").insertOne(
     {
    _id: 총게시물갯수 + 1,
    이름: 요청.body.이메일,
    비번: 요청.body.비밀번호,
     },
    function (에러, 결과) {
    console.log("저장완료");
    //counter라는 콜렉션에 있는 totalPost 라는 항목도 1증가 시켜야함
    db.collection("counter").updateOne(
     { name: "게시물갯수" },
     { $inc: { totalPost: 1 } }
     );
     }
     );
     }
     );
    });
    app.get("/list", function (요청, 응답) {
    db.collection("post")
     .find()
     .toArray(function (에러, 결과) {
    console.log(결과);
    응답.render("list.ejs", { posts: 결과 });
     });
    });
    app.delete("/delete", function (요청, 응답) {
    console.log(요청.body);
    요청.body._id = parseInt(요청.body._id);
    db.collection("post").deleteOne(요청.body, function (에러, 결과) {
    console.log("삭제완료");
    응답.status(200).send({ message: "성공했습니다" });
     });
    });
    // /detail 로 접속하면 detail.ejs 보여줌
    app.get("/detail/:id", function (RQS, RSP) {
    db.collection("post").findOne(
     { _id: parseInt(RQS.params.id) },
    function (Err, Rslt) {
    console.log(Rslt);
     }
     );
    RSP.render("detail.ejs", { data: RSP });
    });
    
    <=% => 문법을 잘못쓴것같은데 무엇이 문제일까요 ?
    상세내용이 나오지 않습니다
    #37835

    codingapple
    키 마스터
    RSP.render("detail.ejs", 이걸 findOne 콜백함수안으로 옮깁시다 
    findOne으로 찾은데이터는 Rslt에 들어있을듯요
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 호 / 개인정보관리자 : 박종흠