인프런 커뮤니티 질문&답변

yami654님의 프로필 이미지

작성한 질문수

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

상품 상세 조회 API 추가

질문있습니다.

작성

·

221

1

postman에서 http://localhost:8080/products/1 여기 id 부분을 2, 3으로 변경해도 똑같이 키보드 내용만 나옵니다.

DB에서 데이터 보기 했을 때 아래 사진처럼 나와서 제대로 실행이 안되는 건가요???

답변 3

0

yami654님의 프로필 이미지
yami654
질문자

server.js 소스 코드 입니다~!

const express = require("express");
const cors = require("cors");
const app = express();
const models = require("./models");
const port = 8080;

app.use(express.json());
app.use(cors());

app.get("/products", (req, res) => {
  models.Product.findAll()
    .then((result) => {
      console.log("PRODUCTS: ", result);
      res.send({
        products: result,
      });
    })
    .catch((error) => {
      console.error(error);
      res.send("에러 발생");
    });
});

app.post("/products", (req, res) => {
  const body = req.body;
  const { name, description, price, seller } = body;
  if (!name || !description || !price || !seller) {
    res.send("모든필드를 입력해주세요.");
  }
  models.Product.create({
    name,
    description,
    price,
    seller,
  })
    .then((result) => {
      console.log("상품 생성 결과 : ", result);
      res.send({
        result,
      });
    })
    .catch((error) => {
      console.error(error);
      res.send("상품 업로드에 문제가 발생했습니다.");
    });
});

app.get("/products/:id", (req, res) => {
  const params = req.params;
  const { id } = params;
  models.Product.findOne({
    vhere: {
      id: id,
    },
  })
    .then((result) => {
      console.log("PRODUCTS :", result);
      res.send({
        product: result,
      });
    })
    .catch((error) => {
      console.error(error);
      res.send("상품 조회에 에러가 발생했습니다.");
    });
});

app.listen(port, () => {
  console.log("그랩의 쇼핑몰 서버가 돌아가고 있습니다.");
  models.sequelize
    .sync()
    .then(() => {
      console.log("DB 연결 성공!");
    })
    .catch((error) => {
      console.error(err);
      console.log("DB 연결 에러");
      process.exit();
    });
});

그리고 postman에서 id를 10으로 했을 때( http://localhost:8080/products/10 )  아래 사진처럼 응답이 나옵니다.

그랩님의 프로필 이미지
그랩
지식공유자

models.product.findOne 코드를 보면 인자로 vhere이라고 오타가 있네요! where로 바꿔주시면 정상적으로 동작할 것 같아요:)

yami654님의 프로필 이미지
yami654
질문자

와...!... 감사합니다. 해결됐어요!!

0

yami654님의 프로필 이미지
yami654
질문자

id 에 다른 값을 넣어도 내용이 변하질 않고 계속 키보드에 대한 내용만 나와요..

그리고 DB목록에 내용이 많아졌는데 삭제를 해도 될까요???

그랩님의 프로필 이미지
그랩
지식공유자

넵 DB 레코드를 삭제해도 괜찮습니다.

그랩님의 프로필 이미지
그랩
지식공유자

server.js 소스코드를 올려주시면 확인이 빠를 것 같습니다~!

0

그랩님의 프로필 이미지
그랩
지식공유자

현재 id가 1,2,3인 녀석들을 보면 전부 키보드인 것을 확인할 수 있습니다.

id를 7,8로 넣으면 다른 값이 나올 것 같아요!

yami654님의 프로필 이미지

작성한 질문수

질문하기