Heim  >  Artikel  >  Web-Frontend  >  nodejs HTTP-Anfragetool

nodejs HTTP-Anfragetool

王林
王林Original
2023-05-08 19:32:35679Durchsuche

Node.js ist eine sehr beliebte Entwicklungsumgebung und seine leistungsstarke JavaScript-Engine kann effiziente Webanwendungen bereitstellen. Bei der Webentwicklung sind häufig HTTP-Anfragen und -Antworten erforderlich, was den Einsatz einiger HTTP-Anfragetools erfordert. In diesem Artikel werden hauptsächlich die häufig verwendeten HTTP-Anforderungstools in Node.js vorgestellt.

1. Node.js integriertes HTTP-Modul

Node.js verfügt über ein natives HTTP-Modul, mit dem sich problemlos ein HTTP-Dienst erstellen lässt. Im HTTP-Modul werden viele verwandte Anforderungs- und Antwort-APIs bereitgestellt, darunter das Lesen von HTTP-Anforderungsheadern und -Anforderungstexten, die Ausgabe von Antwortheadern und Antworttexten usw., die sehr benutzerfreundlich sind. Das Folgende ist ein Code, der das HTTP-Modul verwendet, um einen Server zu erstellen:

const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World!');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

2. Verwenden Sie die Modulanforderung eines Drittanbieters

Obwohl Node.js über ein integriertes HTTP-Modul verfügt, ist seine API möglicherweise zu niedrig und nicht sehr bequem zu bedienen. Daher können wir auch Module von Drittanbietern verwenden, beispielsweise das Anforderungsmodul. Verwenden Sie zuerst npm, um Folgendes zu installieren:

npm install request

Das Anforderungsmodul bietet eine bequemere API, mit der HTTP-Anforderungen schnell abgeschlossen und Antwortdaten abgerufen werden können. Das Folgende ist ein Beispiel für die Verwendung des Anforderungsmoduls zum Senden einer GET-Anfrage:

const request = require('request');

request('http://www.baidu.com', function (error, response, body) {
  console.error('error:', error); // Print the error if one occurred
  console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
  console.log('body:', body); // Print the HTML for the Google homepage.
});

3. Verwenden Sie das Drittanbietermodul axios

Zusätzlich zum Anforderungsmodul gibt es auch ein sehr leistungsfähiges HTTP-Anfragetool – axios. Es handelt sich um einen Promise-basierten HTTP-Client, der im Browser und Node.js verwendet werden kann. axios verfügt über die folgenden Funktionen:

  1. Kann Anfragen und Antworten abfangen.
  2. JSON-Daten automatisch konvertieren.
  3. Support-Stornierungsanfrage.
  4. Sie können Standard-Anfrageheader und Anfrageparameter festlegen.
  5. Zuverlässiger und leichter.

Verwenden Sie npm zum Installieren:

npm install axios

Das Folgende ist ein Beispiel für die Verwendung von Axios zum Senden einer GET-Anfrage:

const axios = require('axios')

axios.get('https://api.github.com/users/johnny4120')
  .then(function (response) {
    console.log(response.data)
  })
  .catch(function (error) {
    console.log(error)
  })

4. Verarbeitung von Anforderungsparametern

Beim Senden einer Anforderung werden häufig einige Parameter und unterschiedliche Modulverarbeitungen mitgebracht Methoden Auch anders. Wenn Sie das Anforderungsmodul verwenden, um eine Anforderung zu stellen, können Sie das Querystring-Modul verwenden, um das Objekt in eine Anforderungsparameterzeichenfolge umzuwandeln, oder Sie können JSON-Parameter direkt verwenden. Beispiel:

const querystring = require('querystring');
const request = require('request');

const options = {
  url: 'https://www.google.com/search',
  qs: {
    q: 'node.js'
  }
};

request(options, function(error, response, body) {
  console.log(body);
});

// 或者

request.post({
  url: 'http://www.example.com',
  json: {key: 'value'}
}, function(error, response, body) {
  console.log(body);
});

Bei Verwendung des Axios-Moduls können Sie den Parameter params verwenden, um das Objekt in eine Abfragezeichenfolge umzuwandeln, oder Sie können den Parameter data verwenden:

const axios = require('axios');

axios.get('https://api.github.com/search/repositories', {
  params: {
    q: 'node',
    sort: 'stars',
    order: 'desc'
  }
})
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    console.log(error);
  });

// 或者

axios.post('http://www.example.com', {foo: 'bar'})
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    console.log(error);
  });

Zusammenfassend gibt es eine Vielzahl von HTTP-Anforderungstools dafür Wählen Sie in Node.js aus. Jedes hat seine anwendbaren Szenarien. Die Auswahl des am besten geeigneten Tools basierend auf den Projektanforderungen macht die Entwicklung effizienter und bequemer.

Das obige ist der detaillierte Inhalt vonnodejs HTTP-Anfragetool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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