Maison interface Web js tutoriel Comment obtenir les paramètres HTTP dans Egg.js

Comment obtenir les paramètres HTTP dans Egg.js

Mar 24, 2018 am 09:16 AM
egg.js http javascript

Cette fois je vous apporte quelles sont les précautionsVoici un cas pratique, jetons un oeil.

Cette fois, je vais vous montrer comment obtenir les paramètres HTTP dans Egg.js, et quelles sont les précautions pour obtenir les paramètres HTTP dans Egg.js. Ce qui suit est un cas pratique, jetons un coup d'oeil.

Dans le framework Egg.js, étant donné que le contrôleur est fondamentalement le seul endroit qui interagit avec le protocole HTTP dans le développement commercial, le framework fournit de nombreuses méthodes et propriétés pratiques pour obtenir des utilisateurs via l'instance de contexte liée au contrôleur. . Paramètres envoyés via des requêtes HTTP. Cet article résume la méthode d'obtention des paramètres de requête http :

1.query

Dans l'URL, la partie suivante est une chaîne de requête, qui est souvent utilisée pour les requêtes de type GET. Transmettez les paramètres. Par exemple, dans GET /search?name=egg&age=26, name=egg&age=26 est le paramètre transmis par l'utilisateur. Nous pouvons obtenir le corps du paramètre analysé via context.query (qui est un objet)

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;
};
Copier après la connexion

Lorsque la clé dans la chaîne de requête est répétée, context.query ne prend la valeur que lorsque la clé apparaît pour la première fois. time , les occurrences ultérieures seront ignorées. GET /posts?category=egg&category=koa La valeur obtenue via context.query est {category: 'egg' }.

Requêtes 1.1

Parfois, notre système est conçu pour permettre aux utilisateurs de transmettre la même clé, telle que GET /posts?category=egg&id=1&id=2&id=3. Pour de telles situations, le framework fournit l'objet context.queries, qui analyse également la chaîne de requête, mais il ne supprime pas les données en double, mais les place toutes dans un tableau :

// 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' ],
    // }
  }
};
Copier après la connexion

Si toutes les clés sont activées context.queries ont des valeurs, elles doivent être des types de tableau.

2. Paramètres du routeur

Nous savons que les paramètres peuvent également être déclarés sur le routeur, et ces paramètres peuvent être obtenus via 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');
  }
};
Copier après la connexion

3. corps

Bien que nous puissions transmettre des paramètres via l'URL, il existe encore de nombreuses restrictions :

Le navigateur aura des restrictions sur la longueur de l'URL. . Si trop de paramètres doivent être transmis, ils ne le seront pas.

Le serveur enregistre souvent l'URL complète consultée dans le fichier journal. Certaines données sensibles ne sont pas sécurisées lorsqu'elles sont transmises via l'URL.

Nous savons qu'il y a une partie du corps après l'en-tête, et nous transmettons généralement les paramètres des méthodes telles que POST, PUT et DELETE dans cette partie. Généralement, lorsqu'il y a un corps dans la requête, le client (navigateur) enverra également Content-Type pour indiquer au serveur quel est le format du corps de cette requête. Les deux formats les plus couramment utilisés pour le transfert de données dans le développement Web sont JSON et Form.

Le framework intègre un bodyParser middleware pour analyser le corps de la requête de ces deux types de formats en objet et le monter sur context.request.body. Dans le protocole HTTP, il n'est pas recommandé de transmettre le corps lors de l'accès via les méthodes GET et HEAD, nous ne pouvons donc pas obtenir le contenu des méthodes GET et HEAD selon cette méthode.

// 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');
  }
};
Copier après la connexion

Le framework définit certains paramètres par défaut pour bodyParser. Après configuration, il présente les caractéristiques suivantes :

Lorsque le Content-Type demandé est application/json, application/json-patch+. json, lorsque application/vnd.api+json et application/csp-report sont utilisés, le corps de la requête sera analysé selon le format json et la longueur maximale du corps sera limitée à 100 Ko.

Lorsque le Content-Type de la requête est application/x-www-form-urlencoded, le corps de la requête sera analysé en fonction du format du formulaire, et la longueur maximale du corps sera limitée à 100 Ko.

S'il est analysé avec succès, le corps doit être un objet (peut-être un tableau).

De manière générale, l'élément de configuration le plus fréquemment ajusté consiste à modifier la longueur maximale autorisée lors de l'analyse. Vous pouvez remplacer la valeur par défaut du framework dans config/config.default.js

module.exports = {
  bodyParser: {
    jsonLimit: '1mb',
    formLimit: '1mb',
  },
};
Copier après la connexion
Si Si le corps de la requête de l'utilisateur dépasse la longueur maximale de notre analyse configurée, une exception avec un

code d'état de 413 sera levée. Si le corps demandé par l'utilisateur ne parvient pas à être analysé (mauvais JSON), une exception avec. un code d’état de 413 sera émis une exception 400.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée du déploiement de mysqld_multi sur une seule machine

Comment interroger différentes bases de données avec un seul SQL déclaration

JS obtient la valeur dans le premier élément de la liste déroulante de sélection

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comprendre les scénarios d'application courants de redirection de pages Web et comprendre le code d'état HTTP 301 Comprendre les scénarios d'application courants de redirection de pages Web et comprendre le code d'état HTTP 301 Feb 18, 2024 pm 08:41 PM

Comprendre la signification du code d'état HTTP 301 : scénarios d'application courants de redirection de pages Web Avec le développement rapide d'Internet, les exigences des utilisateurs en matière d'interaction avec les pages Web sont de plus en plus élevées. Dans le domaine de la conception Web, la redirection de pages Web est une technologie courante et importante, mise en œuvre via le code d'état HTTP 301. Cet article explorera la signification du code d'état HTTP 301 et les scénarios d'application courants dans la redirection de pages Web. Le code d'état HTTP 301 fait référence à une redirection permanente (PermanentRedirect). Lorsque le serveur reçoit le message du client

HTTP 200 OK : comprendre la signification et le but d'une réponse réussie HTTP 200 OK : comprendre la signification et le but d'une réponse réussie Dec 26, 2023 am 10:25 AM

Code d'état HTTP 200 : explorez la signification et l'utilisation des réponses réussies Les codes d'état HTTP sont des codes numériques utilisés pour indiquer l'état de la réponse d'un serveur. Parmi eux, le code d'état 200 indique que la demande a été traitée avec succès par le serveur. Cet article explorera la signification spécifique et l'utilisation du code d'état HTTP 200. Tout d’abord, comprenons la classification des codes d’état HTTP. Les codes d'état sont divisés en cinq catégories, à savoir 1xx, 2xx, 3xx, 4xx et 5xx. Parmi eux, 2xx indique une réponse réussie. Et 200 est le code d'état le plus courant dans 2xx

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Quel code d'état est renvoyé pour un délai d'expiration d'une requête HTTP ? Quel code d'état est renvoyé pour un délai d'expiration d'une requête HTTP ? Feb 18, 2024 pm 01:58 PM

La requête HTTP expire et le serveur renvoie souvent le code d'état 504GatewayTimeout. Ce code d'état indique que lorsque le serveur exécute une requête, il ne parvient toujours pas à obtenir les ressources requises pour la requête ou à terminer le traitement de la requête après un certain temps. Il s'agit d'un code d'état de la série 5xx, qui indique que le serveur a rencontré un problème temporaire ou une surcharge, entraînant l'incapacité de traiter correctement la demande du client. Dans le protocole HTTP, divers codes d'état ont des significations et des utilisations spécifiques, et le code d'état 504 est utilisé pour indiquer les problèmes d'expiration du délai de demande. chez le client

Comment implémenter le streaming HTTP en utilisant C++ ? Comment implémenter le streaming HTTP en utilisant C++ ? May 31, 2024 am 11:06 AM

Comment implémenter le streaming HTTP en C++ ? Créez un socket de flux SSL à l'aide de Boost.Asio et de la bibliothèque client asiohttps. Connectez-vous au serveur et envoyez une requête HTTP. Recevez les en-têtes de réponse HTTP et imprimez-les. Reçoit le corps de la réponse HTTP et l'imprime.

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

Comment résoudre l'erreur HTTP 503 Comment résoudre l'erreur HTTP 503 Mar 12, 2024 pm 03:25 PM

Solution : 1. Réessayez : vous pouvez attendre un certain temps et réessayer, ou actualiser la page ; 2. Vérifiez la charge du serveur : vérifiez l'utilisation du processeur, de la mémoire et du disque du serveur. Si la limite de capacité est dépassée, vous pouvez essayer. pour optimiser la configuration du serveur ou augmenter la capacité. 3. Vérifiez la maintenance et les mises à niveau du serveur : vous ne pouvez attendre que le serveur revienne à la normale. 4. Vérifiez la connexion réseau : assurez-vous que la connexion réseau est stable, vérifiez si le réseau est actif. les paramètres du périphérique, du pare-feu ou du proxy sont corrects ; 5. Assurez-vous que la configuration du cache ou du CDN est correcte ; 6. Contactez l'administrateur du serveur, etc.

See all articles