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. 网络流量监控shell脚本

    网络收发包计数记录在 /proc/net/dev 文件中, 要取得流量, 只需要读取里面的内容两次, 然后相减, 再除以时间间隔即可. #!/bin/bash #Usage1,record in fi ...

  2. idea类似eclipse鼠标提示java api信息

    <ignore_js_op> 详细说明:http://java.662p.com/thread-2615-1-1.html

  3. WP8 调用特定API权限不足

    1.在解决方案中依次打开  Properties -> WMAppManifest.xml 2.点击功能 3.在左侧功能列表中勾选想要的功能权限.完毕

  4. JavaScript高级 面向对象的程序设计 (一)《JavaScript高级程序设计(第三版)》

    创建对象 继承 面向对象的语言都有一个表示---类.通过类我们可以创建多个具有相同属性的对象.但是,在JS中并没有类的概念,所以JS的对象也和其他语言的对象不同. 对象的定义:无序的属性集合,其属性可 ...

  5. Linux下Mysql主从复制(Master-Slave)与读写分离(Amoeba)实践

    一.为什么要做Mysql的主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...

  6. c# TextReader/TextWriter 的类

    TextReader以及TextWriter这两个类,非常有用,很多方法都接受它们作为参数. TextReader有两个子类: StringReader/StringWriter 用于读取字符串: S ...

  7. 这次一定理清晰ThinkPHP之中的模型、数据库之间命名规范

    ServiceSiteModel.class.php 这个模型操控的数据库是service_site表: <?php namespace Admin\Model; use Think\Model ...

  8. VPN连接失败

    连接VPN是总提示 本来我以为是VPN服务器的问题,可是别人就能连接成功,所以只能是我自己机子的问题.后来检查了一下连接属性,终于发现了问题: 这里“允许使用这些协议”应该是处于选中状态,而我的属性里 ...

  9. js常用函数收集

    在js中,可以使用typeof获取变量或函数的类型,如下: <head runat="server"> <title></title> < ...

  10. sublimeText OmniMarkupPreviewer 404

    这个错误也是出现的莫名奇妙. "Error: 404 Not Found Sorry, the requested URL 'http://127.0.0.1:51004/view/29' ...