Latest web development tutorials

Node.js GET / POST запросы

Во многих сценах, наши серверы должны иметь дело с браузером пользователя, такие как формы представления.

Форма отправляется на сервер обычно используют запросы GET / POST.

В этой главе мы представим Node.js GET / POST запросы всех.


GET запрос на получение контента

Так как запросы GET встроены прямо в пути, URL-это полный путь запроса, в том числе? Задняя часть, так что вы можете вручную разобрать содержимое обратно как запрос параметр GET.

Node.js разобрать функции модуля URL обеспечивают эту функциональность.

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

Доступ в браузере http://localhost:3000/user?name=w3c&[email protected] name=w3c&[email protected]? Тогда просмотреть возвращаемые результаты:

w3cnodejs

Получить содержание запроса POST

POST запрашивать все содержимое в теле запроса, http.ServerRequest свойство не имеет содержание тела для запроса, потому что тело запроса ожидания передачи может быть работа отнимает много времени.

Такие, как загрузка файлов, и много раз мы не может понадобиться игнорировать содержание тела запроса, запрос POST вредоносная будет в значительной степени потребляют ресурсы сервера, все Node.js по умолчанию не разрешит тело запроса, когда вам это нужно, вам нужно вручную делаем.

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