>  기사  >  웹 프론트엔드  >  Express를 사용하여 Node.js에서 전체 요청 본문에 액세스하는 방법: 미들웨어 및 원시 요청 처리 가이드

Express를 사용하여 Node.js에서 전체 요청 본문에 액세스하는 방법: 미들웨어 및 원시 요청 처리 가이드

DDD
DDD원래의
2024-10-29 05:41:30549검색

How to Access the Full Request Body in Node.js with Express: A Guide to Middleware and Raw Request Handling

Express를 사용하여 Node.js의 전체 요청 본문에 액세스

Node.js에서 Express를 활용하여 POST 요청을 처리하고 해당 본문에 액세스 도전을 제시할 수 있습니다. 제공된 코드가 전체 요청 본문을 검색하지 못하여 예외가 발생합니다. 이 기사에서는 이 문제에 대한 솔루션을 탐색하고 express.bodyParser()를 사용하지 않고 원시 요청을 얻을 수 있는 가능성을 다룹니다.

Express 미들웨어 사용

Express v4부터 시작합니다. 16부터 내장된 JSON 미들웨어를 구현하여 요청 본문을 JSON으로 효과적으로 구문 분석할 수 있습니다.

app.use(express.json())

이 미들웨어는 자동으로 본문 내용을 req.body 속성을 통해 액세스할 수 있는 JavaScript 객체로 구문 분석합니다. 예:

app.post('/test', (req, res) => {
  res.json({ requestBody: req.body })
})

미들웨어 없이 원시 요청 처리

미들웨어 없이 원시 요청을 얻으려면 다음과 같은 대체 접근 방식을 사용할 수 있습니다.

  1. request.rawBody 속성 사용:

    이 속성은 구문 분석되지 않은 원시 요청 본문에 대한 액세스를 제공합니다. 그러나 bodyParser 미들웨어의 제한 옵션을 예상되는 본문 길이보다 큰 값으로 설정해야 합니다.

  2. 사용자 정의 미들웨어 사용:

    들어오는 요청을 가로채고 원시 본문을 검색하도록 사용자 정의 미들웨어를 정의할 수 있습니다.

    app.use((req, res, next) => {
      req.rawBody = '';
      req.on('data', (chunk) => { req.rawBody += chunk; });
      req.on('end', () => { next(); });
    });

원시 본문을 수동으로 처리하는 것은 더 복잡하고 다음과 같은 결과를 초래할 수 있다는 점에 유의하는 것이 중요합니다. 성능 오버헤드. 일반적으로 미들웨어 사용은 단순성과 효율성 때문에 권장됩니다.

위 내용은 Express를 사용하여 Node.js에서 전체 요청 본문에 액세스하는 방법: 미들웨어 및 원시 요청 처리 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.