React 및 Express에서 Yelp-Fusion 라이브러리를 사용하는 방법(CORS 정책)
내 프로젝트는 큰 프로젝트가 아니므로 서버를 만들지 않고 클라이언트 측에서만 API를 가져오려고 했습니다. 추격을 시작하기 위해 주로 한 가지 이유로 잘 풀리지 않았습니다. CORS Policy .
일시적으로 CORS 정책을 피하고 클라이언트 측에서 가져오는 한 가지 방법은 heroku anywhere 을 사용하는 것이었지만 다음과 같은 이유로 API를 가져오는 안정적인 방법이 아니었습니다.
내 프로젝트를 위해 선택한 프레임워크는 클라이언트 측의 경우 React이고 서버 측의 경우 Express였습니다. 그렇게 간단합니다.
저는 간단한 Express 앱을 만드는 것부터 시작했습니다.
const express = require('express')
const app = express()
const port = 3001
const cors = require('cors');
const yelp = require('yelp-fusion');
const apiKey = 'YOUR-API-KEY';
const client = yelp.client(apiKey);
설명을 위해 yelp-fusion library 을 사용하고 있습니다.
CORS 정책을 피하기 위해 cors library을 설치했습니다.
이것은 내
package.json
파일입니다.{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"devStart": "nodemon app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"express": "^4.18.1",
"request": "^2.88.2",
"yelp-fusion": "^3.0.0"
},
"devDependencies": {
"nodemon": "^2.0.19"
}
}
이제 cors 라이브러리를 사용하려면 앱에서
app.use()
함수를 호출하기만 하면 됩니다.app.use(cors());
그런 다음
app.get()
를 사용하여 API 엔드포인트를 생성하면 됩니다. 보기가 필요하지 않아서 send()
내 res
로 결정했습니다.app.get('/api', (req, res) => {
client.search({
location: 'PUT-ANY-LOCATION',
// offset: '0',
// limit: '50'
}).then(response => {
console.log(JSON.stringify(response.jsonBody));
res.send(response.jsonBody.businesses);
}).catch(e => {
console.log(e);
});
})
이 코드 스니펫은 이제 원하는 데이터를 서버로 보내야 합니다.
프런트엔드에서는 API 끝점에서 가져왔지만 데이터를 그대로 구문 분석해야 했습니다.
const fetchData = () => {
fetch('YOUR-API-ENDPOINT')
.then(response => response.json())
.then(data => JSON.stringify(data))
.then(stringifiedData => JSON.parse(stringifiedData))
.then(parsedData => {
setRestaurant(parsedData);
setRestaurantName(parsedData[0].name)
})
.catch((error) => {
console.log(error);
});
}
이거 야! 나는 웹 개발에 비교적 익숙하지 않았기 때문에 CORS 정책을 우회하는 방법을 찾기 위해 고군분투했으며 이것이 그렇게 하는 간단한 방법 중 하나였습니다. 이 기사가 webdev에 들어가 관련 문제로 어려움을 겪고 있는 사람들에게 도움이 되기를 바랍니다.
다른 제안도 대단히 감사하겠습니다.
Reference
이 문제에 관하여(React 및 Express에서 Yelp-Fusion 라이브러리를 사용하는 방법(CORS 정책)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kyle12jung/how-to-use-yelp-fusion-library-on-react-and-express-cors-policy-2igb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)