Nuxt에 AXIOS 적용하기
Axios란?
Axios는 Promise
기반의 자바스크립트 비동기 처리 방식을 사용하고 있기 때문에 아래와 같이 서버를 호출한 후에 반횐되는 콜백함수를 통해서 결과를 처리하는 방식으로 운영된다.
설치는 프로젝트에 axios 패키지를 설정하면 된다.
요즘 그럴일은 없겠지만 단순한 웹구성을 사용하고 있다면 직접 웹페이지에 스크립트를 지정해서 사용할 수도 있다.
AXIOS 사용하기
axios는 REST 메서드 이름을 별칭으로 사용하기 때문에 사용하기 쉽다.
- 데이터 가져오기 (GET):
axios.get(url[, config])
- 데이터 등록오기 (POST):
axios.post(url[, data[, config]])
- 데이터 수정하기 (PATCH):
axios.patch(url[, data[, config]])
- 데이터 삭제하기 (DELETE):
axios.delete(url[, config])
GET 처리하기
서버에서 데이터를 가져오는 용도로 가장 많이 사용되는 명령이다.
POST 처리하기
서버로 데이터를 등록(입력)할 떄 사용되는 명령이다.
PATCH 처리하기
서버의 특정한 데이터를 수정할 때 사용되는 명령이다.
DELETE 처리하기
서버의 특정한 데이터를 삭제할 때 사용되는 명령이다.
FILE Upload 하기
HTML 구문을 Upload로 사용하기 위해서 Form 구성을 아래와 같이 한다.
FormData()
객체를 생성하고 this.$ref.photo
와 같이 ref 옵션을 이용해서 필드를 직접 참조를 해서 이미지 파일을 가져오고 업로드할 수 있다. 처리하는 스크립트는 아래와 같다.
Nuxt에 Axios 모듈 설정 및 사용하기
axios-module 은 Nuxt.js에서 공식 지원하는 모듈로 Nuxt 환경에서 Axios를 쉽고 안전하게 사용할 수 있도록 지원하는 것이다. 이 모듈에 대한 것은 API 사용법을 참고하도록 한다.
모듈 설치 및 설정
nuxt.config.js
파일의 modules
에 모듈을 등록한다. 여기에 등록된 모듈은 인스턴스 속성으로 처리되므로 this.$axios와 같이 사용이 가능하다.
@nuxtjs/axios 모듈 사용하기
nuxtServerInit
메서드와 actions
메서드의 사용법이 조금 다르기 때문에 아래 예제 코드를 잘 확인할 필요가 있다. 컴포넌트의 asyncData
메서드에서의 사용법은 nuxtServerInit
메서드와 동일하다.
Multiple Server 활용하기
Axios는 Proxy 옵션을 제공하고 있다. 옵션에 대한 자세한 내용을 참고하로도록 한다.
우선 nuxt.config.ts 파일에 axios를 모듈로 등록해 줘야 옵션을 쉽게 설정하고 사용할 수 있다.
기본적인 설정 방법은 위와 같이 처리를 하면 되고 실제로 사용할 때는 proxy로 지정한 서버의 식별자를 이용해서 처리하면 된다.
참고 자료