Egg.js에서 HTTP 매개변수를 얻는 방법
이번에는 노트가 무엇인지 알려드리겠습니다. 실제 사례를 살펴보겠습니다.
이번에는 Egg.js에서 HTTP 매개변수를 얻는 방법과 Egg.js에서 HTTP 매개변수를 얻을 때 주의사항이 무엇인지 보여드리겠습니다. 다음은 실제 사례입니다.
Egg.js 프레임워크에서 Controller는 기본적으로 비즈니스 개발에서 HTTP 프로토콜과 상호 작용하는 유일한 장소이므로 프레임워크는 사용자가 보내는 내용을 얻기 위해 Controller에 바인딩된 Context 인스턴스를 통해 많은 편리한 메서드와 속성을 제공합니다. HTTP 요청이 매개변수를 전달했습니다. 이 문서에서는 http 요청 매개변수를 얻는 방법을 요약합니다.
1.query
URL에서? 다음 부분은 GET 유형 요청에서 매개변수를 전달하는 데 자주 사용됩니다. 예를 들어, GET /search?name=egg&age=26에서 name=egg&age=26은 사용자가 전달한 매개변수입니다. context.query(객체)를 통해 구문 분석된 매개변수 본문을 얻을 수 있습니다
module.exports = app => { class SearchController extends app.Controller { * search() { const queryObj = this.ctx.query; console.log(queryObj.age); console.log(queryObj); //打印结果:{ name: 'egg', age: '26' } } } return SearchController; };
쿼리 문자열의 키가 반복되면 context.query는 키가 처음 나타날 때만 값을 가져오고 이후의 모든 항목에서는 값을 가져옵니다. 무시됩니다. GET /posts?category=egg&category=koa context.query를 통해 얻은 값은 {category: 'egg' }입니다.
1.1 쿼리
때때로 우리 시스템은 사용자가 GET /posts?category=egg&id=1&id=2&id=3과 같은 동일한 키를 전달할 수 있도록 설계되었습니다. 이러한 상황에 대해 프레임워크는 쿼리 문자열도 구문 분석하는 context.queries 객체를 제공하지만 중복 데이터를 삭제하지 않고 모두 배열에 넣습니다.
// GET /posts?category=egg&id=1&id=2&id=3const Controller = require('egg').Controller;module.exports = class PostController extends Controller { * listPosts() { console.log(this.ctx.queries); //result: // { // category: [ 'egg' ], // id: [ '1', '2', '3' ], // } } };
context.queries 모든 키에 값이 있으면 배열 유형이어야 합니다.
2. 라우터 매개변수
라우터에서도 매개변수를 선언할 수 있으며 이러한 매개변수는 context.params를 통해 얻을 수 있다는 것을 알고 있습니다.
// app.get('/projects/:projectId/app/:appId', 'app.listApp');// GET /projects/1/app/2const Controller = require('egg').Controller;module.exports = class AppController extends Controller { * listApp() { assert.equal(this.ctx.params.projectId, '1'); assert.equal(this.ctx.params.appId, '2'); } };
3.body
URL을 통해 매개변수를 전달할 수 있지만 여전히 많은 제한 사항이 있습니다.
브라우저에서는 전달해야 하는 매개변수가 너무 많으면 제한이 없습니다. 통과했다.
서버는 접속한 전체 URL을 로그 파일에 기록하는 경우가 많습니다. URL을 통해 일부 민감한 데이터를 전달하는 것은 안전하지 않습니다.
헤더 뒤에 본문 부분이 있다는 것을 알고 있으며, 일반적으로 이 부분에 POST, PUT, DELETE와 같은 메소드의 매개변수를 전달합니다. 일반적으로 요청에 본문이 있으면 클라이언트(브라우저)도 Content-Type을 보내 이 요청 본문의 형식을 서버에 알려줍니다. 웹 개발에서 데이터 전송에 가장 일반적으로 사용되는 두 가지 형식은 JSON과 Form입니다.
프레임워크에는 이 두 가지 형식의 요청 본문을 object로 구문 분석하고 context.request.body에 마운트하기 위한 bodyParser middleware가 내장되어 있습니다. HTTP 프로토콜에서는 GET, HEAD 메소드를 통해 접근할 때 body를 전달하는 것을 권장하지 않기 때문에 이 방식으로는 GET, HEAD 메소드의 내용을 얻을 수 없다.
// POST /api/posts HTTP/1.1// Host: localhost:3000// Content-Type: application/json; charset=UTF-8//// {"title": "controller", "content": "what is controller"}const Controller = require('egg').Controller;module.exports = class PostController extends Controller { * listPosts() { assert.equal(this.ctx.request.body.title, 'controller'); assert.equal(this.ctx.request.body.content, 'what is controller'); } };
프레임워크는 bodyParser에 대한 일부 기본 매개변수를 설정합니다. 구성 후에는 다음과 같은 특성을 갖습니다.
요청된 Content-Type이 application/json, application/json-patch+json, application/vnd.api+json 및 application/csp-report에서 요청 본문은 json 형식에 따라 구문 분석되며 본문의 최대 길이는 100kb로 제한됩니다.
요청의 Content-Type이 application/x-www-form-urlencoded인 경우 요청 본문은 양식 형식에 따라 구문 분석되며 본문의 최대 길이는 100kb로 제한됩니다.
성공적으로 구문 분석되면 body는 확실히 객체(어쩌면 배열)가 됩니다.
일반적으로 가장 자주 조정되는 구성 항목은 구문 분석 중에 허용되는 최대 길이를 변경하는 것입니다. config/config.default.js
module.exports = { bodyParser: { jsonLimit: '1mb', formLimit: '1mb', }, };
사용자의 요청 본문이 구문 분석을 초과하는 경우 프레임워크의 기본값을 재정의할 수 있습니다. 구성된 최대 길이는 상태 코드 413으로 예외를 발생시킵니다. 사용자가 요청한 본문이 구문 분석에 실패하면(잘못된 JSON) 상태 코드 400으로 예외가 발생합니다.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요! 추천 자료:하나의 SQL 문으로 여러 데이터베이스를 쿼리하는 방법
JS는 선택 드롭다운 상자의 첫 번째 요소에서 값을 가져옵니다
위 내용은 Egg.js에서 HTTP 매개변수를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

HTTP 301 상태 코드의 의미 이해: 웹 페이지 리디렉션의 일반적인 응용 시나리오 인터넷의 급속한 발전으로 인해 사람들은 웹 페이지 상호 작용에 대한 요구 사항이 점점 더 높아지고 있습니다. 웹 디자인 분야에서 웹 페이지 리디렉션은 HTTP 301 상태 코드를 통해 구현되는 일반적이고 중요한 기술입니다. 이 기사에서는 HTTP 301 상태 코드의 의미와 웹 페이지 리디렉션의 일반적인 응용 프로그램 시나리오를 살펴봅니다. HTTP301 상태 코드는 영구 리디렉션(PermanentRedirect)을 나타냅니다. 서버가 클라이언트의 정보를 받을 때

HTTP 상태 코드 200: 성공적인 응답의 의미와 목적 탐색 HTTP 상태 코드는 서버 응답 상태를 나타내는 데 사용되는 숫자 코드입니다. 그 중 상태 코드 200은 요청이 서버에 의해 성공적으로 처리되었음을 나타냅니다. 이 기사에서는 HTTP 상태 코드 200의 구체적인 의미와 사용법을 살펴보겠습니다. 먼저 HTTP 상태 코드의 분류를 이해해 보겠습니다. 상태 코드는 1xx, 2xx, 3xx, 4xx 및 5xx의 다섯 가지 범주로 나뉩니다. 그 중 2xx는 성공적인 응답을 나타냅니다. 그리고 200은 2xx에서 가장 일반적인 상태 코드입니다.

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

HTTP 요청 시간이 초과되고 서버는 종종 504GatewayTimeout 상태 코드를 반환합니다. 이 상태 코드는 서버가 요청을 실행할 때 요청에 필요한 리소스를 얻지 못하거나 일정 시간이 지난 후에도 요청 처리를 완료하지 못함을 나타냅니다. 5xx 시리즈의 상태 코드로, 서버에 일시적인 문제나 과부하가 발생하여 클라이언트의 요청을 올바르게 처리할 수 없음을 나타냅니다. HTTP 프로토콜에서 다양한 상태 코드는 특정한 의미와 용도를 가지며, 504 상태 코드는 요청 시간 초과 문제를 나타내는 데 사용됩니다. 고객

C++에서 HTTP 스트리밍을 구현하는 방법은 무엇입니까? Boost.Asio 및 asiohttps 클라이언트 라이브러리를 사용하여 SSL 스트림 소켓을 생성합니다. 서버에 연결하고 HTTP 요청을 보냅니다. HTTP 응답 헤더를 수신하고 인쇄합니다. HTTP 응답 본문을 수신하여 인쇄합니다.

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가

해결 방법: 1. 재시도: 일정 시간 동안 기다렸다가 다시 시도하거나 페이지를 새로 고칠 수 있습니다. 2. 서버 부하 확인: 서버의 CPU, 메모리 및 디스크 사용량을 확인하면 용량 제한을 초과할 수 있습니다. 3. 서버 유지 관리 및 업그레이드 확인: 서버가 정상으로 돌아올 때까지만 기다릴 수 있습니다. 4. 네트워크 연결 확인: 네트워크 연결이 안정적인지 확인합니다. 장치, 방화벽 또는 프록시 설정이 올바른지 확인하십시오. 5. 캐시 또는 CDN 구성이 올바른지 확인하십시오. 6. 서버 관리자에게 문의하십시오.
