Node.js 接收 GET/POST请求方法分享


摘要:
下文讲述Node.js创建web服务器接收 get post请求的相关知识分享,如下所示:

目前网络中大量应用是采用http、https协议和用户之间互动,下文讲述使用node.js创建web服务器接收客户端get post请求,如下所示:



node.js 创建get接收服务器

在http get的请求中,参数键值被签入到 http url的连接中,当我们获取url后,我们可以通过分析url中的信息获取参数值

例1:
创建简单web服务器获取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; charset=utf-8'});
             res.end(util.inspect(url.parse(req.url, true)));
         }).listen(9898);

  

例2:
创建web服务器,分解url信息,下文中采用url模块中的parse函数对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; charset=utf-8'});


      var params = url.parse(req.url, true).query;


    res.write("webName:" + params.name);
    res.write("\n");
    res.write("url" + params.keySort); //获取?参数中的keySort后的值
    res.end();


    res.end(util.inspect(url.parse(req.url, true)));
}).listen(9898);


在浏览器中输入:
http://localhost:9898/?t=23&name=www.maomao365.com&keySort=valueTest
——输出————
webName:www.maomao365.com
urlvalueTest



node.js 创建post接收服务器

例1:
使用node.js创建一个httppost接收程序,如下所示:

     
     var http = require('http');
     var querystring = require('querystring');
 
     http.createServer(function(req, res){ 
        var post = '';     
 
              //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
             req.on('data', function(chunk){    
                  post += chunk;
               });
 
           // 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
             req.on('end', function(){    
                post = querystring.parse(post);
               res.end(util.inspect(post));
         });
}).listen(9898);
 

例2:
post应用

         var http = require('http');
var querystring = require('querystring');
 
var postHTML = 
  '<html>maomao365之node.js post应用' +
  '' +
  '
' + '网站名:
' + '网站 URL:
' + '' + '
' + ''; http.createServer(function (req, res) { var body = ""; req.on('data', function (chunk) { body += chunk; }); req.on('end', function () { // 解析参数 body = querystring.parse(body); // 设置响应头部信息及编码 res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); if(body.name && body.url) { // 输出提交的数据 res.write("网站名:" + body.name); res.write("
"); res.write("网站 URL:" + body.url); } else { // 输出表单 res.write(postHTML); } res.end(); }); }).listen(9898);