Node(6) Accessing GET and POST data using http.ServerRequest

来源:互联网 发布:淘宝小店怎么加入一淘 编辑:程序博客网 时间:2024/06/01 10:03

http.ServerRequest or simply request contains information from GET or POST

Get objects are in url

querystring.parse() turn the post data into an object



GET

GET example:

var http = require( 'http' );var url = require( 'url' );var util = require( 'util');var querystring = require( 'querystring' );var server = http.createServer( function( request, response ){if( request.method === 'GET' ){//parse the urlvar parts = url.parse( request.url )//write the GET details to responseresponse.writeHead( 200,  {'content-type': 'text/plain'});response.write( 'path => ' + parts.path + '\n');response.write( 'query => ' + parts.query + '\n');response.write( 'foo => ' + querystring.parse( parts.query ).foo + '\n' );response.end('Done!');}});server.listen( 9000 );console.log( 'server started' );



Without connect middleware

Post objects are in received in chunks,.

using data and end event

var http = require('http');var querystring = require( 'querystring');var util = require('util');var form = require('fs').readFileSync('form.html');var maxData = 2*1024*1024; //prevent mass post datahttp.createServer( function(request, response){if( request.method === 'POST' ){//the post data is received by chunksvar postData = '';request.on('data', function(chunk){postData += chunk;if( postData.length > maxData ){pstData = '';this.pause;//stop further dataresponse.writeHead(413);response.end( 'Request too large');}}).on( 'end', function(){if( !postData ){ response.end(); return; }//prevent empty postvar postDataObject = querystring.parse(postData);//print postData to consoleconsole.log('User Posted: \n', postData );//response with postDataObjectresponse.end( 'You Posted: \n' + util.inspect( postDataObject));});}if( request.method === 'GET' ){response.writeHead(200, {'Content-Type':'text/html'});response.end(form);}}).listen(9000);



Acess POST data using connect module 

request.body

var util = require( 'util');var connect = require( 'connect');var form = require( 'fs').readFileSync( 'form.html');//connect.bodyParser allow connect to retrieve POST dataconnect( connect.limit('64kb'), connect.bodyParser(),function( request, response ){if( request.method === 'POST'){console.log( 'User posted:\n', request.body);//request.body is the post objectresponse.end('You Posted:\n'+ util.inspect( request.body));}if( request.method === 'GET'){response.writeHead(200, {'Content-Type': 'text/html'});response.end(form);}}).listen( 9000 );


原创粉丝点击