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]? Тогда просмотреть возвращаемые результаты:
Получить содержание запроса 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);