Mit der Popularität der Front-End- und Back-End-Trennung müssen Front-End-Ingenieure zunehmend mit dem Back-End kommunizieren. Während dieses Prozesses stellten viele Ingenieure fest, dass es viele Probleme gab, natives XMLHttpRequest oder fetch direkt zu verwenden, um Netzwerkanfragen zu stellen. Daher verwenden viele Front-End-Teams mittlerweile Anforderungsbibliotheken von Drittanbietern, um Schnittstellenanforderungen zu stellen. Unter ihnen ist auch die von Node.js entwickelte Request-Request-Bibliothek sehr beliebt.
In diesem Artikel stellen wir vor, wie Sie die Anforderungsbibliothek von Node.js verwenden, um Schnittstellenanforderungen zu kapseln, wodurch Front-End-Ingenieure bequemer und schneller mit der Schnittstelle kommunizieren können.
Bevor Sie die Request-Bibliothek verwenden, müssen Sie sie zuerst installieren. Sie können es mit dem Befehl npm in der Befehlszeile installieren:
npm install request --save
Als Nächstes verwenden wir die Request-Bibliothek, um einige häufige Anfragen zu senden. Zuerst müssen wir eine GET-Anfrage mit der Methode request.get() senden.
const request = require('request'); request.get('https://api.github.com/', function(error, response, body) { if (!error && response.statusCode == 200) { console.log(body); } });
In diesem Code greifen wir auf die API von GitHub zu, um den Inhalt der Homepage abzurufen. Zuerst senden wir eine GET-Anfrage mit der Methode request.get() und übergeben dabei die GitHub-API-Adresse als Parameter. Es sendet die Anfrage an den Server und wartet auf die Antwort des Servers.
Wenn der Server antwortet, übergibt die Anforderungsbibliothek die Antwortinformationen an die Rückruffunktion. Der Parameter Fehler gibt an, ob während des Anforderungsprozesses ein Fehler aufgetreten ist, Antwort gibt die Antwortheaderinformationen des Servers an und Körper gibt den spezifischen Inhalt der Antwort des Servers an.
In diesem Code verwenden wir zunächst if (!error && Response.statusCode == 200), um festzustellen, ob ein Fehler vorliegt. Wenn kein Fehler vorliegt, wird der Antwortinhalt ausgedruckt.
Als nächstes senden wir eine POST-Anfrage.
const request = require('request'); request.post({ url: 'https://httpbin.org/post', form: { name: '张三', age: 18 } }, function(error, response, body) { if(!error) { console.log(body); } });
In diesem Code senden wir eine POST-Anfrage über die Methode request.post() und übergeben dabei die Anfrageadresse und die Anfrageparameter in Form von Objekten. Der Formularparameter stellt die Formulardaten der POST-Anfrage dar. Hier übergeben wir ein Namens- und Altersfeld.
In ähnlicher Weise übergibt die Anforderungsbibliothek die Antwortinformationen an die Rückruffunktion, indem wir den Fehler und den Antwortstatuscode beurteilen und die Antwort ausdrucken Inhalt.
In der heutigen Front-End- und Back-End-Trennungsentwicklung ist das Senden von JSON-Daten eine sehr häufige Anforderungsmethode. Das Folgende ist ein Beispielcode zum Senden von JSON-Daten:
const request = require('request'); const data = { name: '李四', age: 20 }; const options = { method: 'POST', url: 'https://httpbin.org/post', json: true, body: data }; request(options, function(error, response, body) { if(!error) { console.log(body); } });
In diesem Code definieren wir zunächst ein Datenobjekt, das die zu sendenden JSON-Daten darstellt. Anschließend konfigurieren wir einige Parameter der Anfrage über den Optionsparameter:
In der request()-Methode übergeben wir den Optionsparameter. Wie im vorherigen Beispielcode übergibt die Request-Bibliothek die Antwortinformationen an die Rückruffunktion, wenn der Server antwortet.
Bei der Erstellung von Schnittstellenanfragen ist es unvermeidlich, dass viele Fehler auftreten, z. B. ein Zeitlimit für die Netzwerkverbindung, eine Anfrageadresse ist nicht vorhanden usw . Das Folgende ist ein Beispielcode für die Fehlerbehandlung:
const request = require('request'); const data = { name: '李四', age: 20 }; const options = { method: 'POST', url: 'https://httpbin.org/post', json: true, body: data, timeout: 5000 // 设置请求超时时间 }; request(options, function(error, response, body) { if(error) { console.log('请求发生错误:', error); } else { if(response.statusCode == 200) { console.log('响应内容:', body); } else { console.log('请求失败,状态码:', response.statusCode); } } });
In diesem Code legen wir zunächst den Parameter „options.timeout“ fest, um das Timeout der Anfrage anzugeben, um zu vermeiden, dass die Seite hängen bleibt, wenn die Anfrage zu lange dauert ohne eine Antwort. Wenn ein Fehler auftritt, verwenden wir console.log() in der Callback-Funktion, um die Fehlermeldung auszugeben. Wenn kein Fehler vorliegt, wird der Antwortstatuscode ermittelt. Wenn der Statuscode 200 ist, wird der Antwortinhalt gedruckt. Andernfalls drucken Sie den Statuscode des Anforderungsfehlers aus.
Wenn wir die Anforderungsbibliothek verwenden, um Schnittstellenanforderungen zu stellen, können wir gängige Anforderungsmethoden kapseln, um zu viel wiederholten Code zu vermeiden. Das Folgende ist ein Beispielcode, der die Anforderungsschnittstellenfunktion kapselt:
const request = require('request'); function requestApi(url, method, data) { const options = { method: method, url: url, json: true, timeout: 5000 }; if(method == 'GET') { options.method = 'GET'; } else if(method == 'POST') { options.method = 'POST'; options.body = data; } else if(method == 'PUT') { options.method = 'PUT'; options.body = data; } else if(method == 'DELETE') { options.method = 'DELETE'; options.body = data; } return new Promise(function(resolve, reject) { request(options, function(error, response, body) { if(error) { reject(error); } else { if(response.statusCode == 200) { resolve(body); } else { reject(response.statusCode); } } }); }); }
In diesem Code definieren wir zunächst eine requestApi()-Funktion. Es enthält drei Parameter:
In der Funktion definieren wir das Optionsobjekt, um einige Konfigurationsparameter der Anfrage zu speichern. Je nach Anforderungsmethode legen wir den Wert von options.method und den Wert von options.body fest.
Dann verwenden wir Promise für die asynchrone Verarbeitung. In der Rückruffunktion der request()-Methode verwenden wir „resolve()“, um den Antwortinhalt zu übergeben, und „reject()“, um die Fehlermeldung und den Statuscode zu übergeben. Mit den Methoden then() und Catch() des Promise-Objekts können wir nach der Anforderung der Daten eine entsprechende Verarbeitung durchführen.
Die Verwendung der Request-Bibliothek von Node.js zum Erstellen von Schnittstellenanforderungen ist eine sehr bequeme und schnelle Möglichkeit. Es kann einige Probleme vermeiden, die durch die direkte Verwendung von nativem XMLHttpRequest oder Fetch verursacht werden, und kann auch einige häufige Fehler behandeln. Wir können allgemeine Anforderungen entsprechend den tatsächlichen Anforderungen in Funktionen kapseln und sie im Projekt aufrufen, um den Code prägnanter und verständlicher zu gestalten.
Das obige ist der detaillierte Inhalt vonnodejs fordert eine Entschuldigung für die Kapselung an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!