nodejs_Post_Get方式获得参数的方法

简述

在java web开发的基础上开始学习nodejs还是比较有把握的,虽然今天的东西相对来说速度稍微的快了些,但还是能够接受的。
要处理浏览器的请求,第一点是要让服务器能够被页面所访问,也就是建立一个有端口监听的服务器,这一点在昨天的文章中,已经做了较为详细的解释。在引入了 http的模块的基础上,相对来说是很简单的,不用像java那样去配置tomcat

const http = require('http');
var server = http.createServer(function(req,res)

创建服务器的内容如上
今天的重点在于两种提交表单方式的参数获取

Get方式参数获取

代码如下

  const urllib = require('url');
  //get数据
  var obj = urllib.parse(req.url,true);
  //参数给一个链接 就可以解析出所有的键值对,参数true可以解析query
  var url = obj.pathname;
  const get = obj.query;

在以上代码中obj获取的是一系列的键值对,如果用java的思想来解释的话,可以理解为一个request封装而成的Map也就是说,可以通过obj获取想要的参数

Post方式参数获取

同样的先粘代码

var str = '';//用一个空字符串准备接收参数串
  req.on('data',function(data){//.on可以理解为监听器
  //data事件  只要有一段数据到达就会发生一次
  //数据量大的话,数据会被切割为多个部分,分别发送
    str+=data;
  })
  req.on('end',function(){
  //end事件   数据完整到达触发一次
    var post = querystring.parse(str);
    var name = post.name;//获取特定参数
    //可理解为request.getparamter("name")
    console.log(str);
    console.log(post);
    console.log(name);
  })

两种参数提交方式的参数获取如上,下边粘出今天最后一个服务器实例的完整代码

服务器实例完整代码

const http = require('http');
const querystring = require('querystring');
const urllib = require('url');
const fs = require('fs');

var server = http.createServer(function(req,res){
  //get数据
  var obj = urllib.parse(req.url,true);

  var url = obj.pathname;
  const get = obj.query;
  //post
  var str = '';
  req.on('data',function(data){
    str+=data;
  })
  req.on('end',function(){
    var post = querystring.parse(str);
    console.log(str);
  })

  //文件请求
  var file_name = './Day_04/www'+url;
  fs.readFile(file_name,function(err,data){
    console.log(err);
    if (err) {
      res.write('404');
    }else {
      res.write(data);
    }
    res.end();
  });

});
server.listen(8080);

猜你喜欢

转载自blog.csdn.net/qq_41009846/article/details/81592491