Heim > Web-Frontend > Front-End-Fragen und Antworten > nodejs fordert eine Entschuldigung für die Kapselung an

nodejs fordert eine Entschuldigung für die Kapselung an

WBOY
Freigeben: 2023-05-11 13:07:38
Original
725 Leute haben es durchsucht

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.

Installieren Sie die Request-Bibliothek

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

Sende eine GET-Anfrage

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

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.

POST-Anfrage senden

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

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.

JSON-Daten senden

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

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:

  • method stellt die Anfragemethode dar, hier setzen wir sie auf POST.
  • url stellt die Anforderungsadresse dar, die auch https://httpbin.org/post ist.
  • json bedeutet, dass die Daten, die wir senden möchten, im JSON-Format vorliegen.
  • body sind die spezifischen Daten, die wir senden möchten.

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.

Fehlerbehandlung beim Senden von Anfragen

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

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.

Kapselung der Anforderungsschnittstellenfunktion

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

In diesem Code definieren wir zunächst eine requestApi()-Funktion. Es enthält drei Parameter:

  • url steht für die angeforderte Adresse.
  • method stellt die angeforderte Methode dar.
  • data stellt die angeforderten Daten dar.

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.

Zusammenfassung

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!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage