URL--该模块包含用以 URL 解析的实用函数。 使用 require('url') 来调用该模块。


一、parse函数的基础用法

parse函数的作用是解析url,返回一个json格式的数组,请看如下示例:

var url = require('url');
url.parse('http://sports.sina.com.cn/nba/')

运行结果:

protocol: 'http:',
slashes: true,
auth: null,
host: 'sports.sina.com.cn',
port: null,
hostname: 'sports.sina.com.cn',
hash: null,
search: null,
query: null,
pathname: '/nba/',
path: '/nba/',
href: 'http://sports.sina.com.cn/nba/' }

二、parse函数 —— 条件解析;

parse函数的第二个参数是布尔类型,当参数为true时,会将查询条件也解析成json格式的对象。

var url = require('url');
url.parse('http://sports.sina.com.cn/nba/',true)

运行结果:

protocol: 'http:',
slashes: true,
auth: null,
host: 'sports.sina.com.cn',
port: null,
hostname: 'sports.sina.com.cn',
hash: null,
search: '',
query: {},
pathname: '/nba/',
path: '/nba/',
href: 'http://sports.sina.com.cn/nba/' }

三、parse函数 —— 解析主机;

parse函数的第三个参数也是布尔类型的,当参数为true,解析时会将url的"//"和第一个"/"之间的部分解析为主机名,示例如下:

var url = require('url');
url.parse('http://sports.sina.com.cn/nba/',false,true)

运行结果:

protocol: 'http:',
slashes: true,
auth: null,
host: 'sports.sina.com.cn',
port: null,
hostname: 'sports.sina.com.cn',
hash: null,
search: null,
query: null,
pathname: '/nba/',
path: '/nba/',
href: 'http://sports.sina.com.cn/nba/' }

四、url.format(urlObj)

format函数的作用与parse相反,它的参数是一个JSON对象,返回一个组装好的url地址,请看如下示例:

var url = require('url');
url.format({
protocol: 'http:',
hostname: 'www.baidu.com',
port: '80',
pathname: '/news',
query: {
page: 1
}
});

运行结果:

'http://www.baidu.com:80/news?page=1'

五、resolve函数的基础用法;

url.resolve(from, to),resolve函数的参数是两个路径,第一个路径是开始的路径或者说当前路径,第二个则是想要去往的路径,返回值是一个组装好的url,示例如下:

var url = require('url');

url.resolve('http://example.com/', '/one')  // 'http://example.com/one'
url.resolve('http://example.com/one', '/two') // 'http://example.com/two'

Query String--这个模块提供一些处理 query string 的工具。它提供下列方法:


一、querystring.stringify(obj, [sep], [eq])

序列化一个对象到一个 query string。可以选择是否覆盖默认的分割符('&')和分配符('=')。

querystring.stringify({name:'jone',age:28},',',':')
// 运行结果
'name:jone,age:28'

二、querystring.parse(str, [sep], [eq], [options])

将一个 query string 反序列化为一个对象。可以选择是否覆盖默认的分割符('&')和分配符('=')。

querystring.parse('name=jone&age=28&work=teacher&address')
// 运行结果
{ name: 'jone', age: '28', work: 'teacher', address: '' }

相关API参考:http://nodeapi.ucdok.com/#/api/all.html

nodejs笔记三--url处理、Query String;的更多相关文章

  1. Asp.net core 学习笔记 (操作 url and query params)

    更新 :2018-7-25 直接添加 query string. var resetPasswordLink = QueryHelpers.AddQueryString($"{Request ...

  2. URL query string中文字符问题

    如果URL的query string中包含中文字符,在不做特殊处理的情况下通过 request.getParameter 方法是获取不到正确的信息的,这是由于下面的两个机制造成的 浏览器会自动对URL ...

  3. <原>ASP.NET 学习笔记之HTML helper中参数何时会是路由参数,何时又会是query string?

    HTML helper中参数何时会是路由参数,何时又会是query string?   @Html.ActionLink("Edit", "Edit", new ...

  4. 前端笔记之NodeJS(三)Express&ejs模板引擎&请求识别

    一.Express框架 1.1基本使用 创建http服务器特别麻烦,express框架解决了这个的问题. Express在node界的地位,就相当于jQuery在DOM界的地位.jQuery的核心就是 ...

  5. convert URL Query String to Object All In One

    convert URL Query String to Object All In One URL / query string / paramas query string to object le ...

  6. 使用Retrofit时出现 java.lang.IllegalArgumentException: URL query string "t={type}&p={page}&size={count}" must not have replace block. For dynamic query parameters use @Query.异常原因

    /** * Created by leo on 16/4/30. */ public interface GanchaiService { @GET("digest?t={type}& ...

  7. Nodejs express 获取url参数,post参数的三种方式

    express获取参数有三种方法:官网实例: Checks route params (req.params), ex: /user/:id Checks query string params (r ...

  8. kibana的query string syntax 笔记

    kibana的query string syntax 并不是 Query String Query,只能说类似.kibana的 Lucene query string syntax(es的query ...

  9. 最近学习总结 Nodejs express 获取url参数,post参数的三种方式

    express获取参数有三种方法:官网实例: Checks route params (req.params), ex: /user/:id Checks query string params (r ...

随机推荐

  1. CSS 居中效果完整指南

    本文翻译自:<Centering in CSS: A Complete Guide> 使用 CSS 实现效果困难吗?显然不是.实际上有许多方法可以实现居中效果,但在具体情况中,我们往往无法 ...

  2. 第六章_PHP数组(二)

    这篇随笔是对预定义数组变量的总结.通过预定义数组变量,我们可以获得系统环境.用户对话.表单数据等信息. 1.服务器变量:$_SERVER 利用foreach语句打印$_SERVER中的所有元素: &l ...

  3. debug版本和release版本的区别?

    好久没有做web项目了,这项目完成了要发布网站,不好忘了 以前操作过的? 还好脑子还是有点印象 现还是 写个文档吧记录吧 免得 以后作别的了又忘了 那可不妙啊 网站发布步骤:1.先将

  4. Objective-C数据类型、数据类型转换

    数据类型 1.Objective-C数据类型可以分为:基本数据类型.对象数据类型和id类型. 2.基本数据类型有:int.float.double和char类型. 3.对象类型就是类或协议所声明的指针 ...

  5. Objective-C代码的文件扩展名

  6. A-Frame_简单介绍

    VR框架A-Frame: https://aframe.io 版本: 0.2.0    30/6/2016 A-Frame 是一个能够实现在web网页上实现3D和VR体验的开源框架,它是由 MozVR ...

  7. 利用java读写Excel文件

    一.读取Excel文件内容 java 代码 public static String readExcel(File file){ StringBuffer sb = new StringBuffer( ...

  8. ORMLiteDatabase的简单使用并且与其他的表相互联系

    1.下载jar 具体到Android,需要在 http://ormlite.com/releases 页面下载两个jar 包(本文基于ORMLite的版本是:ormlite 4.49-SNAPSHOT ...

  9. 雷达装置 (POJ 1328/ codevs 2625)题解

    [问题描述] 假定海岸线是一条无限延伸的直线,陆地在海岸线的一边,大海在另一侧.海中有许多岛屿,每一个小岛我们可以认为是一个点.现在要在海岸线上安装雷达,雷达的覆盖范围是d,也就是说大海中一个小岛能被 ...

  10. 04-树5 Root of AVL Tree

    平衡二叉树 LL RR LR RL 注意画图理解法 An AVL tree is a self-balancing binary search tree. In an AVL tree, the he ...