Latest web development tutorials

Node.js requêtes GET / POST

Dans de nombreuses scènes, nos serveurs sont nécessaires pour traiter avec le navigateur de l'utilisateur, comme une soumission de formulaire.

Formulaire soumis au serveur utilisent généralement les demandes GET / POST.

Ce chapitre, nous allons introduire Node.js GET / POST demande tout le monde.


GET demande pour obtenir le contenu

Depuis les requêtes GET sont intégrées directement dans la trajectoire, l'URL est le chemin complet de la demande, y compris la partie arrière?, De sorte que vous pouvez analyser manuellement le contenu de retour en tant que paramètre de requête GET.

node.js analysent les fonctions du module d'URL offrent cette fonctionnalité.

var http = require('http');
var url = require('url');
var util = require('util');

http.createServer(function(req, res){
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end(util.inspect(url.parse(req.url, true)));
}).listen(3000);

Accès dans le navigateur http://localhost:3000/user?name=w3c&[email protected] name=w3c&[email protected]? Voir ensuite les résultats retournés:

w3cnodejs

Obtenez POST contenu de la demande

POST demander tout le contenu dans le corps de la demande, http.ServerRequest propriété n'a pas de contenu du corps de la demande, parce que le corps de la demande de transmission d'attente peut être un travail de longue haleine.

Tels que le téléchargement de fichiers, et de nombreuses fois, nous ne pouvons pas besoin d'ignorer le contenu du corps de demande, requête POST malveillant grandement consommer les ressources du serveur, tout node.js défaut ne résoudra pas le corps de la demande, quand vous en avez besoin, vous devez manuellement faire.

var http = require('http');
var querystring = require('querystring');
var util = require('util');

http.createServer(function(req, res){
    var post = '';     //定义了一个post变量,用于暂存请求体的信息

    req.on('data', function(chunk){    //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
        post += chunk;
    });

    req.on('end', function(){    //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
        post = querystring.parse(post);
        res.end(util.inspect(post));
    });
}).listen(3000);