NodeJS 中 querystring.parse() 实现原理

querystring.parse()

能把一个 URL 查询字符串(str)解析成一个键值对的集合。

例子,查询字符串 'foo=bar&abc=xyz&abc=123' 被解析成:

{
  foo: 'bar',
  abc: ['xyz', '123']
}

英文API

中文API

实现细节

const http = require('http');

http.createServer(function(req, res){
  
  if(req.url == '/favicon.ico'){
    return;
  }

  var obj = {};

  var arr = req.url.split('?');

  var arr2 = arr[1].split('&');

  for(var i=0; i<arr2.length; i++){
    var arr3 = arr2[i].split('=');
    obj[arr3[0]] = arr3[1];
  }

  console.log(obj);

  res.end();

}).listen(3000, '127.0.0.1', function(){
  console.log('server running at http://127.0.0.1:3000');
});

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,680评论 18 138
  • 在进行web开发的前端get或post请求发送参数的时候,在后端提取参数进行数据库查询;在Node.js 的V6....
    Evtion阅读 732评论 2 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,603评论 18 399
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,199评论 1 37
  • 和弟妹们在楼下玩,别家小孩也在。我弟,貌似他还很小的样子,拿石头扔,从我身边擦过去,在汽车上弹了下,砸到别家小孩。...
    裳璎珞阅读 256评论 0 1
  • 今天, 逛街逛的有些累的时候, 想去买杯奶茶。 之前一直听说, 附近有一家“一点点”奶茶, 非常好喝。 所以便和我...
    思考的魏靖阅读 101评论 0 4
  • 你说这草庐天寒地冻四面漏风,可哪有夜晚惨呢?当黑夜降临的时候,你连一颗星星都找不到。 就像你总觉得自己多可怜,连一...
    贝龙阅读 360评论 28 4
  • 橙长日记之沟通与情绪管理 今天在心理群里聊天,药山老师问,大家有没有参加过积极主动训练营? 我问他,你参加了吗? ...
    静静生长阅读 574评论 5 4
  • -01-年少对精致模糊的理解就是一个穿着精致的女子,花着自己的钱,享受着属于自己的生活。 电影《欲望都市》里四个个...
    烤鱼匠阅读 173评论 2 1