Latest web development tutorials

Node.js get / żądania POST

W wielu scenach, nasze serwery są wymagane do czynienia z przeglądarki użytkownika, takich jak przesyłanie formularza.

Formularz wysyłane do serwera zazwyczaj używają żądania GET / POST.

W tym rozdziale będziemy wprowadzać node.js GET / POST żąda wszystkich.


GET wniosek o otrzymanie treści

Ponieważ żądania GET są osadzone bezpośrednio w ścieżce URL jest pełna ścieżka żądanie, w tym? Tylnej części, dzięki czemu można ręcznie analizować zawartość powrotem jako wniosek parametru GET.

node.js przeanalizować funkcje modułu url zapewnić tę funkcjonalność.

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);

Wejście w przeglądarce http://localhost:3000/user?name=w3c&[email protected] name=w3c&[email protected]? Wtedy zobaczyć zwrócone wyniki:

w3cnodejs

Uzyskaj treści żądania POST

POST zwrócić całą zawartość w organizmie życzenie, http.ServerRequest własności nie mają zawartość ciała na życzenie, ponieważ żądanie ciało czekać transmisja może być zadaniem czasochłonnym.

Takich jak przesyłanie plików i wiele razy nie mogą wymagać, aby zignorować treść żądania ciała, złośliwe żądanie POST znacznie zużywa zasoby serwera, wszystkie node.js domyślna nie rozwiąże treści żądania, gdy jest to potrzebne, należy ręcznie robić.

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);