Heim Web-Frontend js-Tutorial So erhalten Sie HTTP-Parameter in Egg.js

So erhalten Sie HTTP-Parameter in Egg.js

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

Dieses Mal erkläre ich Ihnen, was die Vorsichtsmaßnahmen sind. Hier ist ein praktischer Fall, werfen wir einen Blick darauf.

Dieses Mal zeige ich Ihnen, wie Sie HTTP-Parameter in Egg.js erhalten und welche Vorsichtsmaßnahmen zum Abrufen von HTTP-Parametern in Egg.js gelten. Das Folgende ist ein praktischer Fall, schauen wir uns das an.

Da im Egg.js-Framework der Controller im Grunde der einzige Ort ist, der in der Geschäftsentwicklung mit dem HTTP-Protokoll interagiert, bietet das Framework viele praktische Methoden und Eigenschaften, um Benutzer über die an den Controller gebundene Kontextinstanz zu erhalten . Über HTTP-Anfragen gesendete Parameter. In diesem Artikel wird die Methode zum Abrufen von HTTP-Anforderungsparametern zusammengefasst:

1.query

In der URL ist der folgende Teil eine Abfragezeichenfolge, die häufig für Anforderungen vom Typ GET verwendet wird. Übergeben Sie Parameter. Beispielsweise ist in GET /search?name=egg&age=26 name=egg&age=26 der vom Benutzer übergebene Parameter. Wir können den analysierten Parameterkörper über context.query (das ein Objekt ist) erhalten.

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;
};
Nach dem Login kopieren

Wenn der Schlüssel in der Abfragezeichenfolge wiederholt wird, nimmt context.query nur den Wert an, wenn der Schlüssel zum ersten Mal erscheint , nachfolgende Vorkommnisse werden ignoriert. GET /posts?category=egg&category=koa Der über context.query erhaltene Wert ist { Kategorie: 'Ei' }.

1.1 Abfragen

Manchmal ist unser System so konzipiert, dass Benutzer denselben Schlüssel übergeben können, z. B. GET /posts?category=egg&id=1&id=2&id=3. Für solche Situationen stellt das Framework das context.queries-Objekt bereit, das auch den Abfragestring analysiert, aber keine doppelten Daten verwirft, sondern sie alle in ein Array einfügt:

// 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' ],
    // }
  }
};
Nach dem Login kopieren

Wenn alle Schlüssel aktiviert sind context.queries haben Werte, sie müssen Array-Typen sein.

2. Router-Parameter

Wir wissen, dass Parameter auch auf dem Router deklariert werden können und diese Parameter über context.params abgerufen werden können.

// 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');
  }
};
Nach dem Login kopieren

3. Körper

Obwohl wir Parameter über die URL übergeben können, gibt es immer noch viele Einschränkungen:

Der Browser unterliegt Einschränkungen hinsichtlich der Länge der URL . Wenn zu viele Parameter übergeben werden müssen, werden diese nicht übergeben.

Der Server zeichnet häufig die vollständige URL auf, auf die in der Protokolldatei zugegriffen wird. Einige sensible Daten sind bei der Weitergabe über die URL nicht sicher.

Wir wissen, dass es nach dem Header einen Körperteil gibt, und wir übergeben in diesem Teil normalerweise die Parameter von Methoden wie POST, PUT und DELETE. Wenn die Anforderung einen Hauptteil enthält, sendet der Client (Browser) im Allgemeinen auch Content-Type, um dem Server mitzuteilen, welches Format der Hauptteil dieser Anforderung hat. Die beiden am häufigsten verwendeten Formate für die Datenübertragung in der Webentwicklung sind JSON und Form.

Das Framework verfügt über eine integrierte BodyParser-Middleware, um den Anforderungstext dieser beiden Formattypen in Objekt zu analysieren und auf context.request.body bereitzustellen. Im HTTP-Protokoll wird nicht empfohlen, den Text beim Zugriff über die Methoden GET und HEAD zu übergeben, sodass wir den Inhalt in den Methoden GET und HEAD mit dieser Methode nicht abrufen können.

// 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');
  }
};
Nach dem Login kopieren

Das Framework legt einige Standardparameter für bodyParser fest. Nach der Konfiguration weist es die folgenden Eigenschaften auf:

Wenn der angeforderte Inhaltstyp application/json ist, application/json-patch+ json: Bei Verwendung von application/vnd.api+json und application/csp-report wird der Anforderungstext gemäß dem JSON-Format analysiert und die maximale Länge des Textkörpers ist auf 100 KB begrenzt.

Wenn der Inhaltstyp der Anfrage application/x-www-form-urlencoded ist, wird der Anfragetext entsprechend dem Formularformat geparst und die maximale Länge des Textes wird auf 100 KB begrenzt.

Bei erfolgreicher Analyse muss der Körper ein Objekt (vielleicht ein Array) sein.

Im Allgemeinen besteht das am häufigsten angepasste Konfigurationselement darin, die maximal zulässige Länge beim Parsen zu ändern. Sie können den Standardwert des Frameworks in config/config.default.js überschreiben

module.exports = {
  bodyParser: {
    jsonLimit: '1mb',
    formLimit: '1mb',
  },
};
Nach dem Login kopieren

Wenn der Anforderungstext des Benutzers die maximale Länge unserer konfigurierten Analyse überschreitet, wird eine Ausnahme mit dem Statuscode von 413 ausgelöst. Wenn der angeforderte Text des Benutzers nicht analysiert werden kann (falscher JSON), wird eine Ausnahme mit ausgelöst Es wird ein Statuscode von 413 ausgelöst.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Erklärung der mysqld_multi-Bereitstellung auf einem einzelnen Computer

So fragen Sie verschiedene Datenbanken mit einem SQL ab Anweisung

JS ruft den Wert im ersten Element im Auswahl-Dropdown-Feld ab

Das obige ist der detaillierte Inhalt vonSo erhalten Sie HTTP-Parameter in Egg.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Feb 18, 2024 pm 08:41 PM

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort Dec 26, 2023 am 10:25 AM

HTTP-Statuscode 200: Erkunden Sie die Bedeutung und den Zweck erfolgreicher Antworten. HTTP-Statuscodes sind numerische Codes, die den Status einer Serverantwort angeben. Darunter zeigt der Statuscode 200 an, dass die Anfrage vom Server erfolgreich verarbeitet wurde. In diesem Artikel wird die spezifische Bedeutung und Verwendung des HTTP-Statuscodes 200 untersucht. Lassen Sie uns zunächst die Klassifizierung von HTTP-Statuscodes verstehen. Statuscodes sind in fünf Kategorien unterteilt, nämlich 1xx, 2xx, 3xx, 4xx und 5xx. Unter diesen zeigt 2xx eine erfolgreiche Antwort an. Und 200 ist der häufigste Statuscode in 2xx

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Feb 18, 2024 pm 01:58 PM

Die HTTP-Anfrage läuft ab und der Server gibt häufig den Statuscode 504GatewayTimeout zurück. Dieser Statuscode zeigt an, dass der Server bei der Ausführung einer Anforderung immer noch nicht in der Lage ist, die für die Anforderung erforderlichen Ressourcen abzurufen oder die Verarbeitung der Anforderung nach einer gewissen Zeit nicht abzuschließen. Es handelt sich um einen Statuscode der 5xx-Reihe, der darauf hinweist, dass beim Server ein vorübergehendes Problem oder eine Überlastung aufgetreten ist, was dazu führt, dass die Anfrage des Clients nicht korrekt verarbeitet werden kann. Im HTTP-Protokoll haben verschiedene Statuscodes spezifische Bedeutungen und Verwendungszwecke, und der Statuscode 504 wird verwendet, um Probleme mit der Zeitüberschreitung von Anfragen anzuzeigen. im Kunden

Wie implementiert man HTTP-Streaming mit C++? Wie implementiert man HTTP-Streaming mit C++? May 31, 2024 am 11:06 AM

Wie implementiert man HTTP-Streaming in C++? Erstellen Sie einen SSL-Stream-Socket mit Boost.Asio und der asiohttps-Clientbibliothek. Stellen Sie eine Verbindung zum Server her und senden Sie eine HTTP-Anfrage. Empfangen Sie HTTP-Antwortheader und drucken Sie sie aus. Empfängt den HTTP-Antworttext und gibt ihn aus.

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

So beheben Sie den HTTP 503-Fehler So beheben Sie den HTTP 503-Fehler Mar 12, 2024 pm 03:25 PM

Lösung: 1. Wiederholen: Sie können eine Weile warten und es erneut versuchen, oder die Seite aktualisieren. 2. Überprüfen Sie die Serverauslastung: Überprüfen Sie die CPU-, Speicher- und Festplattenauslastung. Wenn die Kapazitätsgrenze überschritten ist, können Sie es versuchen um die Serverkonfiguration zu optimieren oder die Serverressourcen zu erhöhen: Sie können nur warten, bis der Server wieder normal ist. 4. Überprüfen Sie die Netzwerkverbindung. Überprüfen Sie, ob das Netzwerk stabil ist Geräte-, Firewall- oder Proxy-Einstellungen sind korrekt; 5. Stellen Sie sicher, dass die Cache- oder CDN-Konfiguration korrekt ist. 6. Wenden Sie sich an den Serveradministrator usw.

See all articles