北京尚网汇智科技有限公司
您当前所在的位置:尚网汇智网站建设 > 前端语言JS技术 > 文章详细
网站建设知识
NEWS
联系我们
  • 网站建设服务电话
  • 400-883-2887
  • 公司地址:北京市昌平科技园区创意大厦2-806
  • 服务项目
    高端网站建设
    移动/微信网站建设
    手机APP开发
    OA/ERP业务系统开发
    网站维护托管
    CMS模板制作

    Nodejs之http的表单提交

    发布时间:2017-07-11 16:53:41
    POST方法提交表单数据

    向服务器提交数据需要使用POST方法,GET方法的请求信息都在查询字符串中,没有请求体,而POST方法的传输的数据都在请求体中,故提交表单数据时需要使用POST方法。

    req是请求信息,req.url表示请求的地址,当服务器运行之后,req请求的网址为127.0.0.1:3000,此时req.url为‘/',则返回的是一串表单数据,在表单数据中设置了method是post,action是‘/url',表面提交数据的方式是POST,将数据提交的地址为127.0.0.1:3000/url,而提交之后要获取新的页面即127.0.0.1:3000/url,此时req.url为‘/url',故显示的另一个页面。

    <script>

    //提交表单数据
    var http=require('http');
    var querystring=require('querystring');
     
    var server=http.createServer(function (req,res) {
    //req.url不同则返回的页面不同
    if('/'==req.url){
     res.writeHead(200,{'Content-Type':'text/html'});
     res.write([
     '<form method="post" action="/url">',
     '<h1>My Form</h1>',
     '<fieldset>',
     '<label>Personal Information</label>',
     '<p>What is your name?</p>',
     '<input type="text" name="name">',
     '<button>submit</button>',
     '</form>'
     ].join(''));
     res.end();
    }else if('/url'==req.url&&req.method=='POST'){
     var reqBody='';
     req.on('data',function (data) {
     reqBody += data;
     });
     req.on('end',function () {//用于数据接收完成后再获取
     res.writeHead(200,{'Content-Type':'text/html'});
     res.write('you have sent a '+req.method+' request\n');
     res.write('<p>Content-Type:'+req.headers['content-type']+'</p>'
      +'<p>Data:your name is '+querystring.parse(reqBody).name+'</p>');
     res.end();
     })
    }else{
     res.writeHead(404);
     res.write('Not Found');
     res.end();
    }
    }).listen(3000,function () {
    console.log('server is listening 3000');
    });
    </script/>


    提交之后,需要获取请求信息的请求体,因为POST方法中信息都在请求体中,用req绑定data事件获取数据,这里需要注意的是必须得在数据接收完成后再对数据进行操作,即必须绑定end事件监听请求信息是否传输完成。

    querystring是查询字符串模块,用于对查询字符串的解析,parse方法将查询字符串解析成一个对象。

    运行结果:

    提交数据后:



    文章出自:北京网站建设公司-尚网汇智 https://www.net2006.com 如转载请注明出处!
    咨询服务热线
    400-883-2887
    客服电话:400-883-2887  传真:010-51654992  E-mail:support@net2006.com
    本站设计已受版权保护,任何公司及个人不得复制,违者将依法追究责任,特此声明。

    Copyright © 2005-2018 北京尚网汇智科技有限公司 版权所有 京ICP备13031271号
    查找内容: