• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

swaggerui에서 execute했는데 console에서는 계속 typeerror로 n.get함수가 없다는 에러가 발생합니다.

23.07.17 19:27 작성 조회수 327

0

스크린샷 2023-07-17 19.25.24.pngjavascript문서를 확인했을때는 배열을 객체로쓴다던가 함수를 부를수없는곳에 작성했다는등의 오류라고 나와있는데 아무리 찾아봐도 그오류가 어디에서 나오는지 왜나오는지를 알수없어서 질문올립니다.

// index.js

import express from "express";
import { options, dataCoffee, dataUsers } from "./swagger/config.js";
import cors from "cors";

const app = express();
import swaggerUi from "swagger-ui-express";
import swaggerJSDoc from "swagger-jsdoc";

app.use(express.json());
const swaggerSpec = swaggerJSDoc(options);
app.use(cors());
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerSpec));

app.get("/users", (req, res) => {
  res.send(dataUsers);
});

app.get("/starbucks", function (req, res) {
  res.send(dataCoffee);
});

app.listen(3001);

// config.js

export const options = {
  definition: {
    openapi: "3.0.0",
    info: {
      title: "swagger-test",
      version: "1.0.0",
    },
  },
  apis: ["./swagger/*-swagger.js"], // files containing annotations as above
};

export const dataCoffee = [
  { name: "아메리카노", kcal: 5 },
  { name: "카푸치노", kcal: 125 },
  { name: "헤이즐넛", kcal: 85 },
  { name: "카라멜마키아또", kcal: 225 },
  { name: "휘핑크림추가", kcal: 115 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
  { name: "아메리카노", kcal: 5 },
];

export const dataUsers = [
  {
    email: "aaa@gmail.com",
    name: "짱구",
    phone: "010-2293-3333",
    personal: "222012-2210392",
    prefer: "https://google.com",
  },
  {
    email: "aaa@gmail.com",
    name: "짱구2",
    phone: "010-2293-3333",
    personal: "222012-2210392",
    prefer: "https://google.com",
  },
  {
    email: "aaa@gmail.com",
    name: "짱구3",
    phone: "010-2293-3333",
    personal: "222012-2210392",
    prefer: "https://google.com",
  },
  {
    email: "aaa@gmail.com",
    name: "짱구4",
    phone: "010-2293-3333",
    personal: "222012-2210392",
    prefer: "https://google.com",
  },
  {
    email: "aaa@gmail.com",
    name: "짱구5",
    phone: "010-2293-3333",
    personal: "222012-2210392",
    prefer: "https://google.com",
  },
  {
    email: "aaa@gmail.com",
    name: "짱구6",
    phone: "010-2293-3333",
    personal: "222012-2210392",
    prefer: "https://google.com",
  },
];

// all-swagger.js

/**
 * @swagger
 * /starbucks:
 *   get:
 *     summary: 커피
 *     tags: [Coffee]
 *     parameters:
 *         name: String
 *         kcal: int
 *     responses:
 *       200:
 *         description: 성공
 *         content:
 *           application/json:
 *             schema:
 *               type: array
 *               items:
 *                 properties:
 *                   name:
 *                     type: String
 *                     example: 아메리카노
 *                   kcal:
 *                     type: int
 *                     example: 5
 */

/**
 * @swagger
 * /users:
 *   get:
 *     summary: 유저검색
 *     tags: [Users]
 *     parameters:
 *         name: String
 *         kcal: int
 *     responses:
 *       200:
 *         description: 성공
 *         content:
 *           application/json:
 *             schema:
 *               type: array
 *               items:
 *                 properties:
 *                   name:
 *                     type: String
 *                     example: 아메리카노
 *                   kcal:
 *                     type: int
 *                     example: 5
 */

답변 2

·

답변을 작성해보세요.

0

안녕하세요! Daon님!

올려주신 소스코드를 복사해서 실행해본 결과, 해당 에러 메시지는 나타나지 않네요!
또한, 해당 에러 메시지는 백엔드코드와 크게 관련이 있어 보이진 않습니다!

따라서, 버전상의 문제이거나 해당 스웨거와는 관련 없는 코드일 수 있을 것 같아요!^^

jay kang님의 프로필

jay kang

질문자

2023.07.20

그러면 이부분은 버전을 다르게해보고 실행해봐야할까요 그부분도 의심되서 수업때한 버전이랑 다른지도 확인하고 해봤거든요

 

네! Daon님!

해당 에러메시지를 확인해보니, swagger-ui 내부에 설치된 프론트엔드 관련 라이브러리(react, redux 등)에 관한 에러 메시지인 것 같네요!

우리가 다운로드 받는 라이브러리도 다른 사람이 만들어서 무료로 공개한 것이므로, 버전, 버그, 패치 등에 영향을 받을 수 있습니다.

기능상으로 이상이 있으시다면, 수업에서 진행했던 내용으로도 문제가 되는지 먼저 확인해 보시고, 수업에서 진행했던 내용마저도 동일한 에러가 발생하신다면, 버전을 변경해서 시도해 보시는게 좋을 것 같아요!

jay kang님의 프로필

jay kang

질문자

2023.07.20

수업시 내용에는 문제가없는데 제가 과제로 하는것만 문제가된다면 리액트랑 리덕스랑 버전이든 어떠한 환경설정문제로 판단해야할까요?

네! 동일한 버전에 수업 코드는 잘 되는데, 수정된 코드만 안된다면 코드상의 문제이겠지만, 해당 버전으로 수업 코드도 동일한 이슈가 발생한다면 버전 문제라고 보는게 좋을 것 같네요!

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.19

안녕하세요, 인프런 AI 인턴이에요.

제가 보기에는 소스 코드에서 n.get 함수가 정의되지 않았기 때문에 에러가 발생한 것 같아요.

index.js 파일에는 n.get 함수가 어디에도 정의되지 않았고, config.js 파일에도 n.get 함수 관련 코드가 없는 것으로 보입니다.

혹시 n.get 함수를 사용하려는 목적이 무엇인지 알려주실 수 있을까요? 그리고 에러 메시지에 표시된 코드도 함께 알려주시면 더 정확한 답변을 드릴 수 있어요.