Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 맥린이
- 사전준비
- Ai
- ReactNative
- 7기
- 팀워크최고
- 프로그래머스
- NotionAI
- 프론트엔드
- 알pdf #파일탐색기미리보기안될때
- 실전프로젝트
- 필수강의
- typeScript
- 리액트
- TDD
- TS
- 알고리즘기초주차
- 코린이
- D반8조
- 스파르타코딩클럽
- REACT
- 항해99
- Expo
- 멍친구
- ChatGPT
- Programmers
- rn
- 달리기반
- 웹개발종합반
- 챗GPT
Archives
- Today
- Total
FrontEnd :-)
환전(환율) 계산기 만들기 ① BE 본문
FE : React , yarn
BE: Express, npm
③ Third commit - FE
1. install axios, instance 생성
2. select 선택을 국가 기준으로 변경
3. 변수명 변경 (1 => from , 2=> to 등으로)
① First Commit - BE
라이브러리 설치
1. xhr2 : XMLHttpRequest 사용 위함.
2. cors: cors 충돌 해결 위함.
클라이언트-서버 데이터
get : date, currencylist, nationlist 보내기
post: 두 국가의 통화코드값 받으면, rate 값 보내기
const express = require("express");
const app = express();
const port = 8080;
const XMLHttpRequest = require("xhr2");
//cors 추가하면 ajax 잘됨 npm install cors
app.use(express.json());
const cors = require("cors");
app.use(cors());
app.use(express.static("public"));
app.get("/", (req, res) => {
res.send("HOME");
});
//국가 통화코드 currency1, currency2 받으면, exchangeRate값 보내기
app.post("/api/:currency1/:currency2", (req, res) => {
const { currency1, currency2 } = req.params;
const requestURL = `https://api.exchangerate.host/convert?from=${currency1}&to=${currency2}`;
const request = new XMLHttpRequest();
request.open("GET", requestURL);
request.responseType = "json";
request.send();
request.onload = function () {
const response = request.response;
const exchangeRate = response.info.rate;
res.send(`${exchangeRate}`);
};
});
//date, currencylist 보내기
app.get("/currencylist", (req, res) => {
const currency = "USD";
const requestURL = `https://api.exchangerate.host/latest?base=${currency}`;
const request = new XMLHttpRequest();
request.open("GET", requestURL);
request.responseType = "json";
request.send();
request.onload = function () {
const response = request.response;
const date = response.date;
const currencyList = Object.keys(response.rates);
res.send({ date, currencyList });
};
});
//국가, 통화단위(symbols) 보내기
app.get("/nationlist", (req, res) => {
const requestURL = "https://api.exchangerate.host/symbols";
const request = new XMLHttpRequest();
request.open("GET", requestURL);
request.responseType = "json";
request.send();
request.onload = function () {
const response = request.response;
const data = Object.values(response.symbols);
res.send(data);
};
});
//서버 실행
app.listen(port, () => {
console.log("서버 실행!!!");
});
issue
1. 환율 rate 받아오는 게 느림.
2. app.post("/api/:currency1/:currency2", (req, res) => { 이 부분이 이상함. 주고 받는 데이터는 문제 없으나, 의미적으로 안 맞는 느낌. params가 아닌 query로 받아오면 좋을듯.
우선 여기까지- 내가 만든 FE와 BE가 작동하는 기쁨은 있었으나.... 수정하고 싶은 게 많아서 계속 작업해보기로-
'JavaScript' 카테고리의 다른 글
환전(환율) 계산기 만들기 ② BE (0) | 2023.03.14 |
---|---|
[Express/node] EJS (0) | 2023.03.01 |
[Express/node] FirstApp (0) | 2023.02.28 |
Comments