Node 模块之 util URL queryString p
第一部分 util
util是一个Node.js核心模块,util模块设计的主要目的是为了满足Node内部API的需求。其中包括:格式化字符串
、对象的序列化
、实现对象继承等常用方法
。要使用util模块中的方法,只需require('util')引入即可。
- util.format(format, […])返回一个格式化的字符串,其作用效果有点类似 printf。
util.format('%s:%s', 'foo'); // 'foo:%s'
- util.log(string) 以标准输出的形式输出。它将获取当前的时间戳,并和参数 string 一起输出,中间用 “ - “ 连接。
require('util').log('Timestmaped message.'); //15 May 21:41:33 - Timestmaped message
- util.inspect(object,[options])将任意对象转换为字符串,
第二部分 URL
url.parse(): 输入 URL 字符串,返回一个对象。
url.format(urlObj): 输入一个 URL 对象,返回格式化后的 URL 字符串。
url.resolve(from, to): 给定一个基础URL路径,和一个href URL路径,并且象浏览器那样处理他们可以带上锚点。url.resolve('http://example.com/', '/one') // 'http://example.com/one'
例子
var url = require('url');
var queryUrl = "http://localhost:3000/index";
返回一个对象
var result = url.parse(queryUrl);
console.log(result) ;
将第一个结果作为第二个的参数
var url = require('url');
var urlObj = {
protocol: 'http:',
slashes: true,
auth: null,
host: 'localhost:3000',
port: '3000',
hostname: 'localhost',
hash: null,
search: null,
query: null,
pathname: '/index',
path: '/index',
href: 'http://localhost:3000/index' };
var result = url.format(urlObj);
console.log(result);
结果为: http://localhost:3000/index
第三部分: queryString 模块
querystring模块是Node.js中的工具模块之一,用于处理URL中的查询字符串,即:querystring部分。查询字符串指:URL字符串中,从问号"?"(不包括?)开始到锚点"#"或者到URL字符串的结束(存在#,则到#结束,不存在则到URL字符串结束)的部分叫做查询字符串。
url.parse(string).query
|
url.parse(string).pathname |
| |
| |
------ -------------------
http://localhost:8888/start?foo=bar&hello=world
--- -----
| |
| |
querystring(string)["foo"] |
|
querystring(string)["hello"]
3.1 querystring可以将URL参数字符串与参数对象的互相转换;
var url = require('url');
var qs = require('querystring');
var testURL = 'http://localhost:3000/index?x=1&y=2';
testURL = url.parse(testURL);
//url格式化为对象
//console.log(testURL);
//拿到可查询字符串
console.log(testURL.query);
//对象 利用qs模块将可查询字符串 转换为对象
var json = qs.parse(testURL.query);
console.log(json);
//将对象转换为字符串
console.log(qs.stringify(json));
结果为:
x=1&y=2
{ x: '1', y: '2' }
x=1&y=2
3.2 querystring.stringify(obj, [sep], [eq]):将JSON对象格式化为查询字符串格式的字符串,默认的分隔符为:“&”和“=”, 可以选择是否覆盖默认的分割符('&')和分配符('=')。
var url = require('url');
var qs = require('querystring');
var queryUrl = "http://localhost:3000/index?x=1&y=2" ;
//query:查询
//parse:解析
queryUrl = url.parse(queryUrl).query;
console.log(queryUrl) ;
console.log(qs.parse(queryUrl)) ;
例子二
var querystring = require('querystring');
var json = {x:'123', y:'456'};
//对象序列化为一个querystring,
console.log(querystring.stringify(json, ';', ':'));
//输出如下 x:123;y:456
//querystring.parse方法用于将查询字符串解析为对象
console.log(querystring.parse('xx=111111&yy=222222'));
3.3 编码查询字符串中的参数:querystring.escape 和 querystring.unescape
var querystring = require('querystring');
//对查询字符串进行 编码
var excape = querystring.escape('name=张&age=11')
console.log(excape);
//对查询字符串进行 解码
console.log(querystring.unescape(excape));
// //结果:
// name%3D%E5%BC%A0%26age%3D11
// name=张&age=11
第四部分 path处理文件路径
path模块可以帮你规范化连接和解析路径,还可以用于绝对路径到对路径的转换、提取路径的组成部分及判断路径是否存在等。
文件路径指文件的保存位置,可以分为相对路径和绝对路径。可以通过拼接文件路径检测文件是否存在,也可以访问文件信息。
4.1 path.normalize(p) 规范路径
var path = require('path');
//格式化
console.log(path.normalize('/foo/bar//baz/asdf/quux/..'));;
// 处理后
//'/foo/bar/baz/asdf'
path.join()方法可以连接任意多个路径字符串。要连接的多个路径可做为参数传入。path.join()方法在接边路径的同时也会对路径进行规范化。例如:
var path = require('path');
//合法的字符串连接
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// 连接后
'/foo/bar/baz/asdf'
//不合法的字符串将抛出异常
path.join('foo', {}, 'bar')
// 抛出的异常
TypeError: Arguments to path.join must be strings'
path.dirname()方法可以提取出一个文件路径中的目录的部分。path.basename()方法可以提取出一个文件路径中的文件的部分。path.extname()方法可以提取文件的扩展名。例如:
var path = require('path');
path.dirname('/Users/liuht/code/itbilu/demo/path.js')
// 结果
'/Users/liuht/code/itbilu/demo'
path.basename('/Users/liuht/code/itbilu/demo/path.js')
// 结果
'path.js'
path.extname('/Users/liuht/code/itbilu/demo/path.js')
// 结果
'.js'
更多精彩内容请关注“IT实战联盟”哦~~~
IT实战联盟.jpg