1. get请求参数接收

我们简单举一个需要接收参数的例子

如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球。通过前面的进阶3教程《nodejs进阶(3)—路由处理》重介绍的url模块,我们知道接收方法如下这样写

 //----------------6_param------------------------------------      
 var http = require('http');                          
 var url = require('url');          
 var router = require('./router');        
 http.createServer(function (request, response) {                          
     if(request.url!=="/favicon.ico"){  //清除第2此访问              
         var rdata  =  url.parse(request.url,true).query;   //获取参数
         if(rdata['keyword']!=undefined){  
             console.log(rdata['keyword']);      
         }       
         console.log("server执行完毕");   
         response.end();  
     }                          
 }).listen(8000);                          
 console.log('Server running  at  http://127.0.0.1:8000/');       

那么在我们的控制台里会输出查询此“地球”。

get请求我们都可以通过上述这种方式获取参数。

2. post请求参数接收

如果是post请求,这些参数不是通过url传递的,是包含在request请求体中。请求体里的流需要以事件形式进行接收

req.on('data',  function(chunk){//通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中

post  +=  chunk;

});

我们新建一个页面,其中有一个post请求

 <html>
 <head>
 </head>
 <body>
 登录:
 <p>这是一个段落</p>
 <h1>样式1</h1>
 <form action="/submitLogin" method="post">
 用户名:<input value="" name="name">
 密码:<input value=""  name="pwd">
 <input type="submit" value="提交">
 </form>
 <!--img src="./showImg"></img-->
 </body>
 <html>

我们请求login,有两个输入项name和pwd,当我们输入值后点击提交,会发post请求到http://localhost:8000/submitLogin

我们对router.js进行扩展,添加submitLogin处理方法。

之前需要引入'querystring',该模块用于实现URL参数字符串与参数对象的互相转换。

大家需要了解学习两个常用的方法

1)require('querystring').parse("name=eee&pwd=123")  结果:Object {name: "eee", pwd: "123"}

2)require('querystring').stringify({name:'eee',pwd:'123'})  结果:"name=eee&pwd=123"

 //-----------------router.js--------------------------------
 var file = require('./models/file');
 var  url  =  require('url');      
 var  querystring  =  require('querystring');  //post需导入     
 module.exports={
     login:function(req,res){
         res.writeHead(200,  {'Content-Type':'text/html'});    
         var data  =  file.readfileSync('./views/login.html');      
         res.write(data);  
         res.end();      
     },
     register:function(req,res){
         var data=file.readfileSync('./views/register.html');//使用同步读取
         res.write(data);
         res.end();
     },
     showImg:function(req,res){
         file.readImg('./imgs/dog.jpg',res);//使用同步读取
     },
     submitLogin:function(req,res){
         var  post  =  '';  //定义了一个post变量,用于暂存请求体的信息      
         req.on('data',  function(chunk){//通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中      
             post  +=  chunk;      
         });      
         //-------注意异步-------------      
         req.on('end',  function(){   //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。      
             post  =  querystring.parse(post);      
             console.log('name:'+post['name']+'\n');        
             console.log('pwd:'+post['pwd']+'\n');
             if(post['name']=="fff"&&post['pwd']=="123"){//简单写登录成功的匹配
                 res.write("登录成功!")
             }else{
                 res.write("用户名密码不正确")
             }
             res.end();  
         });    
     }
 } 

当我们想login页面输入用户名和密码参数时,如果输入fff和123  这时候跳转到loginSubmit输出登录成功!

如果输入其他值跳转后会提示:用户名密码不正确

nodejs进阶(5)—接收请求参数的更多相关文章

  1. SpringMVC——接收请求参数和页面传参

    Spring接收请求参数: 1.使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(Ht ...

  2. struts2视频学习笔记 11-12(动态方法调用,接收请求参数)

    课时11 动态方法调用 如果Action中存在多个方法时,可以使用!+方法名调用指定方法.(不推荐使用) public String execute(){ setMsg("execute&q ...

  3. Struts系列笔记(6)---action接收请求参数

    action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...

  4. struts2 action接收请求参数和类型转换

    1,action接收请求参数 在struts2中action是什么?(struts2是一个mvc框架)         V:jsp        M:action         C:action  ...

  5. Struts2之Action接收请求参数和拦截器

    技术分析之在Struts2框架中使用Servlet的API        1. 在Action类中也可以获取到Servlet一些常用的API        * 需求:提供JSP的表单页面的数据,在Ac ...

  6. struts2之请求参数接收

    struts2之请求参数接收 1. 采用基本类型接受请求参数(get/post)在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名的属性.请求路径:http:/ ...

  7. JS-获取URL请求参数

    前言:原来做过一个项目,需要实现一个页面打印的功能,由于项目中使用了AngularJS+Bootstrap等前端框架,需要打印的页面又在弹出框中,使用了Bootstrap的模态框后发现打印的效果不太好 ...

  8. Struts2学习笔记(六)——Action处理请求参数

    在struts2框架中关于Action处理请求参数有两种方案(三个方式),表单属性的名称应该和在Action类中定义的成员属性或者在JavaBean中定义的成员属性名称一样: 1.属性驱动 1)直接在 ...

  9. Jquery Datatables 请求参数及接收参数处理

    Jquery Datatables 请求参数及接收参数处理 /** * Created by wb-wuyifu on 2016/8/9. */ /** * Created by wb-wuyifu ...

随机推荐

  1. excel链接sharepoint 用于 Excel 的 Microsoft Power Query

    https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=39379

  2. 【Java并发编程实战】-----synchronized

    在我们的实际应用当中可能经常会遇到这样一个场景:多个线程读或者.写相同的数据,访问相同的文件等等.对于这种情况如果我们不加以控制,是非常容易导致错误的.在java中,为了解决这个问题,引入临界区概念. ...

  3. css3选择器总结

    1.p[class^/$/*=td]所有p标签的前面带有td/后面带有td/所有带有td的类的三种样式. 2.div:first-child/last-child/nth-child()在父元素下的第 ...

  4. ORA-00030: User session ID does not exist.

    同事在Toad里面执行SQL语句时,突然无线网络中断了,让我检查一下具体情况,如下所示(有些信息,用xxx替换,因为是在处理那些历史归档数据,使用的一个特殊用户,所以可以用下面SQL找到对应的会话信息 ...

  5. cocoaPads 安装及出现Analyzing dependencies之后卡死解决方案

    1.安装 a. 查看源 gem sources -l b. 设置源: sudo gem sources -a http://ruby.taobao.org c. 删除源:sudo gem source ...

  6. [CareerCup] 15.7 Student Grade 学生成绩

    15.7 Imagine a simple database storing information for students' grades. Design what this database m ...

  7. Yarn&amp;Mapreduce参数的具体含义和配置参考

    Yarn & Mapreduce 参数的具体含义和配置 http://zh.hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp ...

  8. Java :List

    1.List是一个接口,不能实例化,需要实例化一个ArrayList或者LinkedListList myList = new ArrayList(); 2.List中可以添加任何对象,包括自己定义的 ...

  9. test if DEMO

    可参考:http://blog.chinaunix.net/uid-20671208-id-3643362.html 1.test 举例: test -d ~/auto && echo ...

  10. shell script的连接符是逗号,不是英文的句号

    举个例子: gawk 'BEGIN{ var[ var[ var[ var[ asort(var,test) for(i in test) print ] }' 这时候敲回车就能输出 Index: - ...