: Node.js์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ, Promise ๊ธฐ๋ฐ HTTP ๋น๋๊ธฐ ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Axios๋ Fetch API์ ๋น์ทํ ์ญํ ์ ํ์ง๋ง, Fetch API๋ณด๋ค ์ฌ์ฉ์ด ๋ ๊ฐํธํ๋ฉด์ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ๋ค์ด ํฌํจ๋์ด ์๋ค.
Fetch API | Axios |
---|---|
๋นํธ์ธ API๋ผ ๋ณ๋์ ์ค์น๊ฐ ํ์ ์๋ค. | ์จ๋ ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ค์น๊ฐ ํ์ํ๋ค. |
.json() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. | ์๋์ผ๋ก JSON ๋ฐ์ดํฐ ํ์์ผ๋ก ๋ณํํด์ค๋ค. |
npm install axios
import axios from 'axios';
axios.get("url"[, config])
์์) Promise ์ฌ์ฉ
axios
.get('https://koreanjson.com/users/1')
.then((response) => { // axios๋ ์๋์ผ๋ก JSON ๋ฐ์ดํฐ ํ์์ผ๋ก ๋ณํํ๊ธฐ ๋๋ฌธ์
const { data } = response; // .json() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค.
console.log(data);
})
.catch((error) => console.log(error));
์์) Async / Await ์ฌ์ฉ
async function requestData() {
const response = await axios.get('https://koreanjson.com/users/1');
const { data } = response;
console.log(data);
}
requestData();
axios.post("url"[, data [, config]])
axios.delete("url"[, config])
data: {}
attribute๋ฅผ ์ถ๊ฐํ๊ณ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.axios.delete("url", { data: {...} })
์์)
axios
.delete("url", { data: { accessToken } })
.then((res) => {
setIsLogin(false);
setAccessToken('');
setGithubUser(null);
setServerResource(null);
});