해결된 질문
작성
·
452
0
javascript문서를 확인했을때는 배열을 객체로쓴다던가 함수를 부를수없는곳에 작성했다는등의 오류라고 나와있는데 아무리 찾아봐도 그오류가 어디에서 나오는지 왜나오는지를 알수없어서 질문올립니다.
// 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님!
올려주신 소스코드를 복사해서 실행해본 결과, 해당 에러 메시지는 나타나지 않네요!
또한, 해당 에러 메시지는 백엔드코드와 크게 관련이 있어 보이진 않습니다!
따라서, 버전상의 문제이거나 해당 스웨거와는 관련 없는 코드일 수 있을 것 같아요!^^
네! Daon님!
해당 에러메시지를 확인해보니, swagger-ui 내부에 설치된 프론트엔드 관련 라이브러리(react, redux 등)에 관한 에러 메시지인 것 같네요!
우리가 다운로드 받는 라이브러리도 다른 사람이 만들어서 무료로 공개한 것이므로, 버전, 버그, 패치 등에 영향을 받을 수 있습니다.
기능상으로 이상이 있으시다면, 수업에서 진행했던 내용으로도 문제가 되는지 먼저 확인해 보시고, 수업에서 진행했던 내용마저도 동일한 에러가 발생하신다면, 버전을 변경해서 시도해 보시는게 좋을 것 같아요!
네! 동일한 버전에 수업 코드는 잘 되는데, 수정된 코드만 안된다면 코드상의 문제이겠지만, 해당 버전으로 수업 코드도 동일한 이슈가 발생한다면 버전 문제라고 보는게 좋을 것 같네요!
0
안녕하세요, 인프런 AI 인턴이에요.
제가 보기에는 소스 코드에서 n.get 함수가 정의되지 않았기 때문에 에러가 발생한 것 같아요.
index.js 파일에는 n.get 함수가 어디에도 정의되지 않았고, config.js 파일에도 n.get 함수 관련 코드가 없는 것으로 보입니다.
혹시 n.get 함수를 사용하려는 목적이 무엇인지 알려주실 수 있을까요? 그리고 에러 메시지에 표시된 코드도 함께 알려주시면 더 정확한 답변을 드릴 수 있어요.
그러면 이부분은 버전을 다르게해보고 실행해봐야할까요 그부분도 의심되서 수업때한 버전이랑 다른지도 확인하고 해봤거든요