모든 개발자가 알아야 할 필수 Express 요청 속성

DDD
풀어 주다: 2024-09-12 22:31:38
원래의
993명이 탐색했습니다.

ssential Express Request Properties Every Developer Should Know

프로젝트의 백엔드 작업을 할 때는 요청과 응답을 처리하는 것이 중요합니다. 클라이언트와 서버 간의 원활한 통신을 위해서는 이러한 요청을 효율적으로 관리하는 것이 필수적입니다. 다음은 모든 개발자가 숙지해야 하는 몇 가지 일반적이고 중요한 요청 속성입니다.

1. 요청 IP

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}`);
});
로그인 후 복사

2. 쿠키 필요

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' }
});
로그인 후 복사

3. req.signedCookies

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' }
});

로그인 후 복사

4. 필수 매개변수

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}`);
});

로그인 후 복사

5. 요청 쿼리

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}`);
});

로그인 후 복사

6. 요청본문

클라이언트가 보낸 데이터의 키-값 쌍이 포함되어 있습니다. 기본적으로 해당 값은 정의되지 않습니다. 본문 데이터는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!