每天学习一点点,成功增加一大步

http 接收 get 或 post 请求参数

NodsJS zhanghui 152℃

刚开始学习 NodeJs 的时候只是学习过 HTTP 依赖的简单搭建出一个 WEB 服务器软件的方法。但最近在写项目时遇到 HTTP 的别个需求就是接收 get 或 post 请求过来的参数,这是之前的博文中没有记录的,而当时也是刚接触 NodeJs 没有太深入的去尝试,今天再记录 HTTP 的实践成功的示例。

本博客中曾记载过 HTTP 的简单 WEB 服务应用

nodeJS 应用服务器创建的示范

GET 请求

/**
*接收一个带参数的http请求
* 127.0.0.1:3000/http_get?name=小小沉沉&password=qwer
* 一般会有两次请求  另一次为http://127.0.0.1:3000/favicon.ico 这个是浏览器自动发起的请求,需要特殊处理
*
*/

//导入http模块

var http=require('http');
var util = require('util');

//导入url模块
var url=require('url');

http.createServer(function(request,response){

    response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});//设置response编码为utf-8

    //接收浏览器url
    var url_Obj=url.parse(request.url);

    //请求参数中有中文是推介,会自动处理中文问题,推介使用
    var url_Obj_Json=url.parse(request.url,true);
    console.log(url_Obj_Json);

    var url_Obj_Json_str=JSON.stringify(url_Obj_Json.query);
    console.log(url_Obj_Json_str);

    //解决http://127.0.0.1:3000/favicon.ico 引起的重复请求
    if(url_Obj_Json.path != "/favicon.ico"){
        response.write(util.inspect(url.parse(request.url, true)));
    }

    response.write("=======================================");
    response.end();

}).listen(3000);
console.log("--HTTP NodeJS Connect--");

post 请求

/**
*接收一个带参数的http请求
* 127.0.0.1:3000/http_get
* name=小小沉沉&password=qwer
*/

//导入http模块
var http=require('http');

//导入url模块
var url=require('url');
var log=require('./log4js_readconfig');
var querystring = require("querystring");

http.createServer(function(request,response){
    request.setEncoding('utf-8');

     var postData = "";
    // 数据块接收中
    request.on("data", function (postDataChunk) {
        postData += postDataChunk;
    });

    request.on("end", function () {
        console.log('数据接收完毕');
        var params = querystring.parse(postData);//GET & POST  ////解释表单数据部分{name="zzl",email="zzl@sina.com"}
        console.log(params);
        console.log(params["name"]+"~~"+params["password"]);

        response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});//设置response编码为utf-8
        response.write("======================================="+params["name"]+"~~"+params["password"]);
            response.write(util.inspect(params));
        response.end("数据提交完毕");
    });

}).listen(3000);
console.log("--HTTP NodeJS Connect--");

转载请注明:隨習筆記 » http 接收 get 或 post 请求参数

喜欢 (0)