프로젝트의 백엔드 작업을 할 때는 요청과 응답을 처리하는 것이 중요합니다. 클라이언트와 서버 간의 원활한 통신을 위해서는 이러한 요청을 효율적으로 관리하는 것이 필수적입니다. 다음은 모든 개발자가 숙지해야 하는 몇 가지 일반적이고 중요한 요청 속성입니다.
Express.js의 req.ip는 요청을 보내는 클라이언트의 IP 주소를 제공하는 요청 개체의 속성입니다. 클라이언트의 IP 주소를 나타내는 문자열을 반환합니다.
프록시 처리:
기본적으로 앱이 프록시 뒤에 있는 경우 req.ip는 실제 클라이언트의 IP가 아닌 프록시의 IP를 반환할 수 있습니다. 올바른 클라이언트 IP를 얻으려면 신뢰 프록시를 설정하여 프록시를 신뢰하도록 Express를 구성할 수 있습니다.
app.set("trust proxy", true);
이제 req.ip는 프록시 뒤에 있는 경우에도 클라이언트의 올바른 IP를 반환합니다.
예:
app.get('/', (req, res) => { console.log(req.ip); // Logs the client's IP address res.send(`Your IP address is ${req.ip}`); });
req.cookies를 사용하려면 cookie-parser 미들웨어라는 패키지를 설치해야 합니다. 이 속성은 클라이언트가 쿠키 헤더에서 보낸 쿠키를 가져오는 데 사용됩니다. req.cookies의 쿠키는 서명되지 않았습니다. 이는 조정되거나 확인되지 않았음을 의미합니다. 덜 민감한 데이터에 이 기능을 사용할 수 있습니다
import cookieParser from "cookie-parser"; app.use(cookieParser()); app.get('/example', (req, res) => { console.log(req.cookies); // { cookieName: 'cookieValue' } });
req.signedCookies를 사용하려면 cookie-parser 미들웨어라는 패키지를 설치해야 합니다. 여기에는 변경되지 않았음을 확인하기 위해 서명되고 검증된 쿠키가 포함되어 있습니다. 서명된 쿠키는 비밀 키로 암호화됩니다. req.signedCookies는 검증을 통과한 쿠키만 저장합니다.
서명된 쿠키 설정 방법:
서명된 쿠키를 설정하려면 signed: true 옵션을 사용할 수 있습니다:
res.cookie('signedCookieName', 'signedValue', { signed: true });
예:
import cookieParser from "cookie-parser"; app.use(cookieParser('your-secret-key')); app.get('/example', (req, res) => { console.log(req.signedCookies); // { signedCookieName: 'signedValue' } });
Express.js의 req.params는 요청 URL의 경로 매개변수를 포함하는 객체입니다. 경로 매개변수는 경로 경로의 자리 표시자로 명명되며 req.params는 해당 자리 표시자의 URL에 클라이언트가 제공한 값을 저장합니다.
매개변수 이름 앞에 콜론(:)을 사용하여 매개변수로 경로를 정의할 수 있습니다.
예:
app.get('/users/:userId', (req, res) => { console.log(req.params); // { userId: 'valueFromURL' } res.send(`User ID is ${req.params.userId}`); });
Express.js의 req.query는 요청 URL의 쿼리 문자열 매개변수를 포함하는 개체입니다. 쿼리 문자열은 ? 뒤에 오는 키-값 쌍입니다. URL에 추가 데이터를 서버에 전달하는 데 사용됩니다. &를 사용하여 여러 쿼리를 전달할 수 있습니다.
예제 URL:
http://example.com/search?term=flowers&sort=asc
예:
app.get('/search', (req, res) => { console.log(req.query); // { term: 'flowers', sort: 'asc' } res.send(`Search term: ${req.query.term}, Sort order: ${req.query.sort}`); });
클라이언트가 보낸 데이터의 키-값 쌍이 포함되어 있습니다. 기본적으로 해당 값은 정의되지 않습니다. 본문 데이터는 express.json 및 urlencoded({ Extended: true })와 같은 내장 미들웨어 또는 body-parser와 같은 외부 미들웨어를 사용하여 채울 수 있습니다.
다음 코드는 이해를 돕기 위한 것입니다
import express from "express"; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.get("/user", (req, res) => { const user = req.body; consolo.log(user); res.send(user); })
이 정보가 도움이 되었기를 바랍니다. 나중에 참고할 수 있도록 좋아요를 누르고 저장하는 것을 잊지 마세요. 즐거운 코딩하세요!
위 내용은 모든 개발자가 알아야 할 필수 Express 요청 속성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!