Node.js GET/POST请求

下面将会介绍关于GET/POST请求的例子,在这之前,先来说node 判断请求模式,可以在控制台输出console.log(req);这里会有很多内容,如果要直接点的话,也可以输出res.end("请求方式:"+req.method);

http.createServer(function(req,res){
    res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
    res.end('请求方式:'+req.method);
}

执行结果:

下面是一个提交表单的例子;

新建一个表单

<p>输入的用户名:{email}</p>
<p>输入的密码:{pwd}</p>
<form method="post" action="./form">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="email"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd"/></td>
</tr>
<tr><td><input type="submit" value="登录"/></td></tr>
</table>
</form>

 直接就在当前页面映射请求内容了{email}、{pwd};

新建一个router.js模块

var http=require('http');
var Method=require('./model/method.js');
http.createServer(function(req,res){
	res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
	if(req.url!=='\favicon.ico'){
		var reqMethod=req.method;
		Method[reqMethod](req,res);
	}
}).listen(8000);
console.log("访问地址:http://localhost:8000");

router.js模块里,通过判断是什么请求方式,然后再调用method模块里的函数;

创建methods.js

var fs=require("fs");
var url = require('url');
var util = require('util');
var querystring=require('querystring');
//读取文件内容
function readFile(params,res){
    var arr=['email','pwd'];
	fs.readFile('./model/form.html',function(err,data){
		if(err){
			return console.log(err);
		}
		dataStr=data.toString();
		for(var i=0;i<arr.length;i++){
			reg=new RegExp("{"+arr[i]+"}","g");//新建正则
			if(params[arr[i]]==undefined){//筛选undefined
				params[arr[i]]='';
			}
			dataStr=dataStr.replace(reg,params[arr[i]]);//替换成请求信息
		}
		res.write(dataStr.toString());
	    res.end('');
	})
}
module.exports={
	GET:function(req,res){//GET请求方式
		var params=url.parse(req.url,true).query;
		readFile(params,arr,res);
	},
	POST:function(req,res){//POST请求方式
		var params='';
		req.on('data',function(chunk){
			params+=chunk;
		});
		req.on('end',function(){
			params=querystring.parse(params);
			readFile(params,arr,res);
		});
	}
}

在还没有请求信息时,参数输出值是undefined,界面也将映射出来,因此,在这里以‘’处理;

GET请求内容是直接嵌入在路径中的,因此直接获取相应的参数值就可以了;

POST请求内容在请求体中,通过req的data事件监听函数,请求的数据都会累加到params变量中,当end事件触发后,通过querystring.parse将params解析成POST请求格式;

POST请求方式,执行结果:

post请求方式

GET请求方式:

GET请求方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值