刚开始学习 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 请求参数