• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
逍遥汉
博客园    首页    新随笔    联系   管理    订阅  订阅

原生nodejs解析get和post参数方法

通过get和post方式获取提交的表单数据

  1,通过get方法,解析参数:

  通过get方法请求解析参数,通过nodejs原生内置模块url的url.parse()方法,将get请求的url传入,url.parse()方法会自动解析URL路径;

 

//导入http模块
const http = require('http')    
//导入url模块,获取get请求参数
const url = require('url')
//创建服务器

const server = http.createServer()

//开启服务器
server.on('request', (req, res) => {

//通过url.parse()方法,将get请求的URL传入
    
    var params = url.parse(req.url,true).query;//加上true参数表示返回json数据格式,否则默认为字符串,
    console.log(params);
  
})
server.listen(8080, () => {
    console.log('http://127.0.01:8080/user');
})

url.parse()可以将一个完整的URL地址以JSON对象 返回,里面都是get请求方式的相关信息,代码如下:

var url=require('url');
var path="http://localhost:8888/index?name=bob&password=123456";
var query=url.parse(path);
console.log(query);

 

 对比得知,url.parse(path,true);加了true 后 ,JSON对象的 query中的query 由原来的字符串变成了对象,这在Node的官方文档也有说:

 

 

 2,通过POST方法,解析参数:

//导入http模块

var http = require('http');

//导入querystring内置模块,解析post请求参数

var querystring = require('querystring');

http.createServer(function(req, res){

    // 定义了一个post变量,用于暂存请求体的信息
    var post = '';     
 
    // 通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
    req.on('data', function(chunk){    
        post += chunk;
    });
 
    // 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
    req.on('end', function(){    
        post = querystring.parse(post);
        res.end(util.inspect(post));
    });
}).listen(3000);

 

  

时间如白驹过隙,忽然而已,且行且珍惜......
posted @ 2020-10-22 00:14  unfetteredman  阅读(2143)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3