Maison > Article > interface Web > La requête nodejs renvoie des données json
Node.js est un environnement d'exécution JavaScript côté serveur très populaire. Il s'agit d'un outil puissant pour créer des applications Web hautes performances. Les requêtes HTTP sont essentielles lorsque vous devez collecter des données à partir d'une fonction API. Étant donné que la plupart des API modernes renvoient des données au format JSON, la gestion de la demande et du renvoi des données JSON est une tâche très importante dans Node.js.
Dans Node.js, nous pouvons utiliser le module http
intégré pour effectuer des requêtes HTTP. Vous pouvez obtenir des données du serveur distant en envoyant une requête HTTP et en les analysant au format JSON. Voici un exemple de création d'une requête HTTP et de réception d'une réponse JSON à l'aide de Node.js : http
模块进行HTTP请求。你可以通过发送HTTP请求从远程服务端获取数据并将其解析为JSON格式数据。以下是一个使用Node.js发出HTTP请求并接收JSON响应的例子:
const https = require('https'); const options = { hostname: 'api.example.com', port: 443, path: '/data', method: 'GET' }; const req = https.request(options, res => { console.log(`statusCode: ${res.statusCode}`); let data = ''; res.on('data', d => { data += d; }); res.on('end', () => { const json = JSON.parse(data); console.log(json); }); }); req.on('error', error => { console.error(error); }); req.end();
在上面的例子中,https
模块提供了一个request()
函数,在该函数中我们传递一个options
对象作为参数。该对象包含hostname,端口,请求路径和请求方法等信息。request()
函数返回一个http.ClientRequest
对象,我们可以调用该对象的end()
方法来发送请求。
当远程服务端响应请求时,我们可以监听该响应的“data”事件并将数据添加到缓冲区中。当响应完成时,我们可以使用JSON.parse()
函数将缓冲区中的数据解析为JSON格式数据。
在处理API响应时,我们需要确保HTTP响应的状态码为200。但这并不是唯一需要处理的状态码,还有其他的常见状态码:
我们也需要处理这些状态码。例如,当请求返回404响应码时,我们可以向用户发送一条类似“资源未找到”的消息。
const https = require('https'); const options = { hostname: 'api.example.com', port: 443, path: '/data', method: 'GET' }; const req = https.request(options, res => { let data = ''; res.on('data', d => { data += d; }); res.on('end', () => { const json = JSON.parse(data); console.log(json); }); }); req.on('error', error => { console.error(error); }); req.end();
以上例子,我们忽略了HTTP响应状态码。虽然这很方便,但很不安全。如果服务端返回了错误状态码,我们可能需要知晓导致错误的原因。为了实现这个目标,我们需要在request()
函数的回调中检查响应状态码。如果状态码不是200,我们可以使用res.statusMessage
字段来获取响应状态消息:
const https = require('https'); const options = { hostname: 'api.example.com', port: 443, path: '/data', method: 'GET' }; const req = https.request(options, res => { if (res.statusCode !== 200) { console.error(`请求失败: ${res.statusMessage}`); res.resume(); return; } let data = ''; res.on('data', d => { data += d; }); res.on('end', () => { const json = JSON.parse(data); console.log(json); }); }); req.on('error', error => { console.error(error); }); req.end();
在上述代码中,我们在HTTP响应状态码不是200时打印出错误消息。如果遇到错误,我们调用res.resume()
方法来清除缓存,并在处理数据结束时结束响应。如果你遇到不是由你的代码引起的请求错误,有时候调用res.resume()
rrreee
https
fournit une requête () Fonction
, dans laquelle on passe un objet options
en paramètre. Cet objet contient des informations telles que le nom d'hôte, le port, le chemin de la requête et la méthode de la requête. La fonction request()
renvoie un objet http.ClientRequest
, et nous pouvons appeler la méthode end()
de l'objet pour envoyer la requête. Lorsque le serveur distant répond à une requête, nous pouvons écouter l'événement "data" de la réponse et ajouter les données au tampon. Lorsque la réponse est terminée, nous pouvons utiliser la fonction JSON.parse()
pour analyser les données du tampon au format JSON. Lors du traitement de la réponse API, nous devons nous assurer que le code d'état de la réponse HTTP est 200. Mais ce n'est pas le seul code d'état à gérer, il existe d'autres codes d'état courants : #🎜🎜#request()
. Si le code d'état n'est pas 200, nous pouvons utiliser le champ res.statusMessage
pour obtenir le message d'état de la réponse : #🎜🎜#rrreee#🎜🎜#Dans le code ci-dessus, nous imprimons lorsque la réponse HTTP le code d'état n'est pas 200. Un message d'erreur apparaît. Si une erreur est rencontrée, nous appelons la méthode res.resume()
pour vider le cache et mettre fin à la réponse une fois le traitement des données terminé. Si vous rencontrez des erreurs de requête qui ne sont pas causées par votre code, il est parfois utile d'appeler la méthode res.resume()
. #🎜🎜##🎜🎜#Summary#🎜🎜##🎜🎜#Demander et analyser des données JSON dans Node.js est très simple. Le module HTTP intégré fournit une fonction de requête. En utilisant cette fonction, nous pouvons envoyer des requêtes HTTP et recevoir des réponses Json dans les programmes Node.js. En utilisant le code ci-dessus, nous pouvons obtenir les données du point de terminaison de l'API et analyser facilement les données au format JSON. Cependant, nous devons prêter attention à certaines situations anormales, telles que le code d'état de la réponse HTTP n'est pas 200 et d'autres erreurs de requête HTTP. Avec une gestion complète des erreurs, nous pouvons rendre notre code plus robuste. #🎜🎜#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!