묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
getPosts(params.value) 이슈
const fetchPost = async () => { try { const { data, headers } = await getPosts(params.value) posts.value = data totalCount.value = headers['x-total-count'] } catch (error) { console.error(error) } } watchEffect(fetchPost)const { data, headers } = await getPosts()로 요청하면 db.json에서 요청한 GET을 모두 가져오는데 params.value만 넣으면 가져오질 않습니다.Axios 모듈, 라우터 모두 다 점검해 봤지만 에러는 나지 않고 있습니다.
-
미해결습관부터 바꿔주는 Node.js & Express 기초
Express 사용하면서 Jest 테스트 관련해서 질문 드립니다.
// Axios.test.ts import axios from 'axios'; import ManagerService from "./ManagerService"; jest.mock('axios'); const mockedAxios = axios as jest.Mocked<typeof axios>; describe("Axios Test", () => { let managerService = new ManagerService(); it("should mock axios get call", async () => { mockedAxios.get.mockResolvedValue({ data: [ { corporation: "inflearn" } ], }); const test = await managerService.axiosTest("inflearn"); expect(test).toEqual([ { corporation: "inflearn" } ]); expect(mockedAxios.get).toHaveBeenCalledWith(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: "inflearn" }, }); }); }); 위와 똑같은 코드로 테스트를 진행했고, 본 코드에서는 약간의 차이만 있었습니다.하지만 아직 왜 그렇게 되는지 알지 못하여서 강사님께 여쭤보려고 합니다.1번 코드 ( 테스트가 잘 동작하는 코드 )axiosTest = async (corporation: string) => { const response = await axios.get(`${process.env.SERVER_URL}/corporation/info`, { params: { corporation: corporation, }, }); if (!response) { throw new Error("값이 없음"); } return response.data; }; 2번 코드 ( 값이 없음으로 에러가 발생하는 코드 )axiosTest = async (corporation : string) => { const site = await axios({ method: 'get', url: `${process.env.SERVER_URL}/corporation/info`, params: { corporation : corporation }, }) if(!site) { throw new Error("값이 없음"); } return site.data } 둘의 차이점에 대해서 알 수 있을까요?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
axios에 값을 보낼때 { ...data } 하는 이유
axios의 post, put에 data를 보낼 때{ ...data }로 보내는 이유를 알려주실 수 있을까요?v-model의 값을 바로 보내면 어떤 불이익이 있을 수 있나요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
axios.get(...) 에서 에러가 나는데 검색해도 마땅히 못 찾겠어요
"dependencies": { "axios": "^1.3.5", "core-js": "^3.8.3", "vue": "^3.2.13", "vue-router": "^4.0.3", "vuex": "^4.0.0" }, =================================================== import axios from 'axios' export default { data(){ return { users :[], } }, created : { axios.get('https://api.hnpwa.com/v0/news/1.json') .then(function(response){ console.log(response); }) .catch(function(error){ }) } }Module build failed (from ./node_modules/babel-loader/lib/index.js):SyntaxError: C:\Users\pmgk\Desktop\vuetest\vue_news\src\views\NewsView.vue: Unexpected token, expected "," (10:9) //////////////////////////////////////////////////https://minemanemo.tistory.com/99위 링크를 통해 babel-eslint 패키지를 설치하고 진행하면 에러 문구만 조금 달라지고 변함은 없네요 ㅠ.검색해 도 마땅히 나오지 않아 해결을 못 하고 있습니다. 조언 부탁드립니다..
-
미해결Slack 클론 코딩[실시간 채팅 with React]
SWR or axios 관련 질문이 있습니다.
프론트에서 백앤드 서버로 네트워크 요청시 요청 헤더에 보면 Connection: keep-alive 라고 표기 되는데 이 상태의 요청들이 많으면 서버가 부하가 큰다던가 할 수 있는 요지가 있을까요?프론트에서 보내는 저 api 상태의 요청이 많으면 문제가 생길수 있다는데프론트에서 요청시 팬딩이 걸리는 그런 상황에 요청을 끊을 수 있는 방법이 있을까요?(백엔드 서버에 어떻게히면 부담을 줄일수 있을까 고민중입니다;)
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
axios와 관련돼서 질문드립니다!
안녕하세요, 강의를 들으면서 궁금증이 생겨 질문드립니다.아래 사진에서 보면 axios.js에서 만든 내용은 instance이고 export도 instance인데 어떻게 axios로 불러와서 사용이 가능한가요?axios.js에서는 instance생성에 axios를 from "axios"에서 가져오지만banner에서 axios를 작성할때 경로를 보면, 분명 그냥 axios가 아니라 저희가 만든 api/axios.js에서 불러오는건데 어떻게 가능한지, 그리고 왜 저렇게 불러오는지 궁금합니다. axios.js파일 Banner.js파일에서 axios사용
-
미해결[리뉴얼] 타입스크립트 올인원 : Part2. 실전 분석편
제네릭을 활용한 Response 타이핑 7:40초 질문
안녕하세요 강의를 듣다가 질문이 생겨 문의드립니다axios.post 설명 중 interface Created {}가 이해되지 않아 질문 드립니다 import axios, {Axios, AxiosError, AxiosResponse} from "axios"; interface Post {userId: number, id: number, title: string, body: string} interface Created {} interface Data {title: string, body: string, userId: 1} (async () => { try { const response = await axios.get<Post, AxiosResponse<Post>>( "https://jsonplaceholder.typicode.com/posts/1" ); //post<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>; const response2 = await axios.post<Created, AxiosResponse<Created>, Data>('https://jsonplaceholder.typicode.com/posts', { title: 'foo', body: 'bar', userId: 1 }) console.log(response.data.id) console.log(response2) } catch (error) { if(axios.isAxiosError(error)) { //커스텀 타입가드 // {message: "서버 장애입니다. 다시 시도해주세요"} console.error((error.response as AxiosResponse<{message: string}>)?.data.message) } } } })(); [index.d.ts] 내의 axios.get의 경우 Post가 있어 타입을 확인할 수 있다는 것은 이해했습니다. 하지만 interface Post와 달리 interface Create는 빈 객체는 axios.post에서 무슨 역할인지 이해되지 않습니다. 개인적인 생각으로는 [index.d.ts]에서 T는 any니까 Create는 단순히 자리만 채우고 실제 타입 역할은 interface Data가 수행하는 것 같았습니다 제대로 이해한 게 맞나 싶어 문의드립니다그리고 올려주신 강의 늘 잘 듣고 있습니다. 늘 어려운 부분, 이해되지 않는 부분을 쉽게 설명하셔서 감사합니다.
-
미해결만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
SSR axios를 하는 과정에서 401 에러가 떠요..
getServerSideProps를 이용해서 SSR을 할 때axios에서 계속 401 Unauthorized 에러가 발생하네요...혹시몰라서 CSR로도 시도해봤는데 이때는 잘 되구요...혹시 SSR에서 header 설정을 추가로 해주어야한다거나 하는 경우가 있는건가요...? 어떻게 시도를 해도 에러가 없어지지 않네요ㅠㅠㅠ
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
params : { append_to_response : "videos"},
강의 잘 보고 많이 배우고 있습니다 ! "append_to_response"는 사용자가 다르게 바꿀 수 있는 부분인가요 ? 아니면 axios 속성인가요 ?
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
Axios로 API요청할때 url주소
아래 코드에서 url: `http://localhost:3000/restaurants?category=${param}`, 인데, 이 url은 어디서 확인 가능한걸까요? 제가 /restaurants이 부분을 다른 param으로 정한 것 같애서요! async function getData(category){ let param = category; if (!param) { param = ""; } const dataSet = await({ method: "get", url: `http://localhost:3000/restaurants?category=${param}`, headers:{}, data: {}, }); console.log(dataSet) }
-
미해결배달앱 클론코딩 [with React Native]
axios 0.25 이상에서 multipart/form-data 문제
강의 6분 근처에 이미지 전송 오류 관련해서 0.24로 내리지 않고 0.25이상에서 작동하기는 한다네요. https://github.com/axios/axios/issues/4406#issuecomment-1048693170 axios.post(url, formData, { headers: { 'Content-Type': 'multipart/form-data' }, transformRequest: formData => formData, }) 이런 식으로 하면 작동하는군요. 0.26에서 확인했습니다. 흠... 불편하네요. https://github.com/axios/axios/issues/4406#issuecomment-1066677603 한달 전에 수정한다고 코멘트했는데 아직도 반영은 안된듯 싶습니다. 0.24로 내렸다가 반영되면 올리는 게 제일 나은 것 같습니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
axios Unauthorized 에러 관련 질문 드립니다.
강사님~ 안녕하세요~~!! 강의 수강 중 - Suggestion 목록 API 및 화면 구현 - useAxios 훅을 통한 보다 손쉬운 조회 API 요청 해당 강의의 실습 중 에러가 생겨서 질문을 드립니다. 먼저, 아래는 SuggestionList.js 의 코드입니다. 아래는 Suggestion.js의 코드입니다. 리액트 페이지에서 suggetstions for you 부분에 친구 목록이 뜨지 않고, 다음과 같은 error가 보여집니다. (이전에는 되었던 것 같은데 컴퓨터를 재부팅 한 이후로 되지 않는 것 같습니다...ㅠㅠ) 해결을 어떻게 해야할 지 강사님의 조언을 구하고 싶습니다..! 그럼 미리 감사 인사를 드립니다 ㅠㅠ !!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
delete 의 body 사용에 대해서 궁금합니다.
axios 요청 시에 , delete는 body를 기본적으로는 제공하지 않는다고 알고 있습니다. 그런데 두 번째 파라미터로 data: {} 를 넣어줘서 body를 쓸 수 있는것으로 알고 있는데, 혹시 이게 권장되지 않는 방법인가요? 혹시 그렇다면, 배열이나 예민한 정보를 delete로 보낼 시에는 어떤 방법이 권장되는지 알고 싶습니다. //예시 axios.delete('/product', { data: { body에 들어갈 객체} });
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
리덕스 툴킷 + axios 에러핸들링 질문드립니다
안녕하세요. 지난번에 리덕스 툴킷관련해서 addCass로 여러 상태관리에 대해 많은 공부가 됐습니다. 단순 상태관리까지는 성공했는데 이제 axios를 붙이다보니 에러핸들링에 관련해서 궁금한점이 생겼습니다. export const loginAsync = createAsyncThunk('user/login', async(action) => { const { data } = action; return axios .post('http://localhost:5000/login', data) .then((res) => res.data) .catch((e) => e); }); 이렇게 createAsyncThunk를 만들어서 통신을 하는데 대충 테스트용으로 만들어놓은 api에서 app.post('/login', (req, res, next) => { const { userId, userPassword } = req.body; if (userId !== 'test' || userPassword !=='123' ) { return res.status(403).json({ login : false }); } else { return res.json({ userName : '이름', userAge : 00, userJob : '초보 프론트엔드' }); } }) 이렇게 내보냈습니다.성공했을때는 문제가 없으나 실패했을때가 문제입니다. 로그인 실패시 export const userSlice = createSlice({ name : 'user', initialState, reducers : {}, extraReducers : (builder) => { builder .addCase(loginAsync.pending, (state) => { state.logInLoading = true; state.logInError = null; state.logInDone = false; }) .addCase(loginAsync.fulfilled, (state, action) => { console.log('성공') // state.logInLoading = false; // state.userInfo = action.payload; // state.logInDone = true; }) .addCase(loginAsync.rejected, (state, action) => { console.log('실패') // state.logInLoading = false; // state.userInfo = null; // state.logInError = action.payload.error; }) } }); 실패해도 fulfilled에 걸리게 됩니다. 403에러를 띄웠다면 saga에서는 failure액션에 걸렸던거같은데 툴킷은 다른거같아서 좀 검색해보니rejectedValue? 라는 함수가 있다는데 임포트 해와도 에러만 날뿐입니다. 제가 청크 미들웨어를 한번도 안써봐서 이렇게 헤메는걸까요? 아니면 툴킷은 따로 에러핸들링 하는 방법이 있나요?
-
미해결Svelte.js [Core API] 완벽 가이드
svelte 3.0 + axios 0.25.0
안녕하세요. 강의 내용대로 따라하면서 svelte를 접하고 있습니다. 현재 svelte 3.0 에 axios 설치시에 0.25.0 버전이 설치 되는데 이후 오류가 발생하고 있습니다. @rollup/plugin-json 을 설치하고 rollup.config.js 파일을 수정해도 동일한 오류가 발생하는데 해결할 방법이 없을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
axios.post(
import axios from "axios"; import React, { useEffect } from "react"; function LandingPage() { useEffect(() => { axios.post("/api/product/products"); }, []); return <div>LandingPage</div>; } export default LandingPage; 랜딩페이지에 axios.post("/api/product/products"); 를 추가 한후 밑에 에러가 계속 뜹니다.
-
미해결Vue.js + TypeScript 완벽 가이드
Axios type 정의 질문 드립니다.
export const request = (method: any, url: string, data?: object[]): AxiosPromise<any> => { return axios({ method, url: DOMAIN + url, data }) .then(result => result.data) .catch(result => { const { status } = result.response; if (result === UNAUTHORIZED) { return onUnauthorized(); } throw Error(result); }) } 안녕하세요. 캡틴 판교님 강의를 들으면서 많은 도움을 받는 수강생입니다~공부 중에 의문사항이 있어 문의 드립니다. 제가 axios 코드를 작성했는데(method: any, url: string, data?: object[]): AxiosPromise<any> 코드에서 파라미터 부분인 method와 반환타입인 AxiosPromise 부분에any를 사용했는데 any가 아닌 좀 더 정확한 타입을 주고 싶습니다. method 부분은 'get' 또는 'post'를 넣어줄거라 string이라고 정의를 했었는데넣고 나면 아래 지렁이 에러 표시가 생겼습니다.이런 부분들은 어떻게 추론을 해야 할지 궁금합니다.답변 부탁 드리겠습니다.감사합니다~
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
비동기 방식에 대해 질문올려봅니다.
안녕하세요. 그랩님 그랩님 강좌를 잘 보고 있는 한 수강생입니다. 다름이아니라 강의 내용과는 별개의 내용이지만 그랩님을 통해 자바스크립트를 배우고 여러가지 배웠기 때문에 그랩님께 질문 남겨봅니다. const getData = async () => { try { const result = await axios.get( "https://b2ef45f8-e166-41d7-bd35-9ad159028fbf.mock.pstmn.io/test" ); const products = result.data.products; console.log(products); console.log(`status:(${result.status}) 통신을 성공했습니다!`); const data = JSON.stringify(products); return data; } catch (err) { console.error(err); console.log("결과를 가져오지 못했습니다."); return err; } }; console.log(getData()); 위에 코드는 프로미스 형식의 axios객체를 async, await을 이용해 then과 catch등을 축약해서 제가 만든 포스트맨 목서버의 데이터를 get메서드로 불러와서 결과값을 확인하는 코드입니다. 실행에는 문제가 전혀 없습니다. 그런데 제가 궁금한 것은 getData 함수 표현식이 async로 감싸져 promise객체를 받아 비동기 처리가 되어서 console.log(getData())가 먼저 실행된 뒤에 getData 함수가 실행된다는것은 알고있습니다. 허나 만약에 비동기 함수에서 리턴값을 받아 출력을 하고 싶을 때는 어떤 처리를 해야 하는지가 궁금합니다. 만약 코드가 실행되면 console.log(getData())가 실행될 때 Promise { <pending> }가 출력이 되었습니다.
-
미해결실전 리액트 프로그래밍
커스텀훅 작성할 때 axios 부분을 별도의 파일로 만들어서 호출 할 경우 type error 가 나타납니다.
안녕하세요. typescript 와 create-react-app 을 사용하여 공부중인데요. 커스텀 훅을 만들어서 비동기 API를 호출하여 테이블에 노출하는 기능을 구현하다가 도저히 답이 안나와서 질문드립니다. useState와 useEffect 를 사용하여 비동기 API를 set 하는 커스텀훅을 만들었고, axios 를 호출하는 별도의 파일을 만들어서 사용중인데 const [items, setItems] = useState<coronaApiProps[]>();const coronaItems = getCorona();useEffect(() => { setItems(coronaItems);}, []); 이렇게 사용하니 아래처럼 에러가 나타납니다. TS2345: Argument of type 'Promise<coronaApiProps[]>' is not assignable to parameter of type 'SetStateAction<coronaApiProps[] | undefined>'. Type 'Promise<coronaApiProps[]>' is not assignable to type '(prevState: coronaApiProps[] | undefined) => coronaApiProps[] | undefined'. Type 'Promise<coronaApiProps[]>' provides no match for the signature '(prevState: coronaApiProps[] | undefined): coronaApiProps[] | undefined'. coronaApiProps 는 제가 만든 인터페이스입니다. 해당 에러가 나타나서 useEffect 안에 const [items, setItems] = useState<coronaApiProps[]>();// axios 로 api 호출const coronaItems = getCorona(); useEffect(() => {coronaItems.then(response => {setItems(response); });}, []); 이렇게 사용하니 커스텀훅을 두번 호출합니다. 그래서 axios 파일을 분리하지 않고 커스텀훅 안에 사용하면 커스텀훅을 한번만 사용합니다. api를 호출하는 axios 파일을 분리하고 사용할 수 없나요? 필요하면 github 추가해드릴 수 있습니다.
-
미해결Svelte.js [Core API] 완벽 가이드
axios 버전 문제
현재 npm i axios -D하면 0.21버전이 설치되는데 이게 npm run dev할때 에러를 일으키네요 ㅜㅜ 교육영상에서와 같은 0.20버전으로 해야 동작합니다. (다른분들도 문제 생기면 0.20으로 시도해보세요) npm i axios@0.20 이 문제는 rollup과 관련된 문제인가요?