nodejs学习之--path url query-string模块

Path

//首先引入模块 
var path = require('path');

path.basename() 返回String

var c1='/dbc/ef/node/a.txt';
var r1 = path.basename(c1);
console.log(r1); //a.txt
var r2= path.basename(c1, '.txt');
console.log(r2); //a

path.delimiter 分割符

console.log(process.env.PATH.split(path.delimiter));
/*输出系统环境变量如:['C:\\windows\\system32','D:\\program\\Git\\cmd'...]*/

path.parse() 返回一个object对象

var c = './testfile/a.html';
var obj = path.parse(c);
console.log(obj);
console.log(obj.base);// a.html
/* 
  输出的obj对象:{ root: '',
  dir: './testfile',
  base: 'a.html',
  ext: '.html',
  name: 'a' } 
*/

path.relative(from ,to) 返回String

var a = './testfile/web/css.css';
var b = './testfile';
var result = path.relative(a,b);
var result2 = path.relative(b,a);
console.log('a relative b:' +result);
console.log('b relative a:' +result2);
//a relative b: ..\..
//b relative a: web\css.css

path.dirname(path) 目录名 返回String

var c3='./testfile/a.thml';
console.log( path.dirname(c3)); // ./testfile

path.extname(path) 后缀名 返回String

var c4='./testfile/a.html';
console.log(path.extname(c4)); // .html

path.format(pathObject) 格式化 返回String

console.log( path.format({
  dir:"ad",
  root:'/',
  //base:"test1.txt",
  name:"exg",
  ext:".txt"
}));
// 输出 ad\exg.txt  有dir时root忽略
//如果有base  则输出 ad\test1.txt

path.isAbsolute(path) 返回boolean

console.log(path.isAbsolute('e:/Learn_Nodejs'));// ture
console.log(path.isAbsolute('/ab/e')); // true
console.log(path.isAbsolute('/ab/a.txt')); // true
console.log(path.isAbsolute('./ab/a.txt')); // false
console.log(path.isAbsolute('../ab/a.txt')); // false

path.join(‘path1’,’path2’,…) 拼接 返回String

console.log( path.join('/a','a2','a3/e'));
//  /a/a2/a3/e

path.resolve(‘path1’,’path2’,…) 返回String

console.log( path.resolve('./testfile','web'));
console.log(path.resolve('a.html'));
console.log(path.resolve('a.html','../web'));
// e:\Learn_Nodejs\testfile\web
// e:\Learn_Nodejs\a.html
// e:\Learn_Nodejs\web

url

const url = require('url');

url.parse(url) 把路径解析为一个url对象,返回值object

var h='http://czx:123@abc.com:8000/node/test/a?k1=v1&k2=v2#chapter01';
var uc=url.parse(h);
console.log(uc.href); // 输出即 h
console.log(uc.protocol); // http:
console.log(uc.auth); // czx:123
console.log(uc.host); // abc.com:8000
console.log(uc.hostname); // abc.com
console.log(uc.port); // 8000

console.log(uc.path); // /node/test/a?k1=v1&k2=v2
console.log(uc.pathname); // /node/test/a
console.log(uc.search); // ?k1=v1&k2=v2

console.log(uc.query); // k1=v1&k2=v2
console.log(uc.hash); // #chaptor01

url.format() 路径对象转为字符串 跟parse相反 返回String

console.log( url.format(uc) ); //拿的上面例子的uc测试
// http://czx:123@abc.com:8000/node/test/a?k1=v1&k2=v2#chapter01

url.resolve(from, to) 相对路径 慢慢理解吧 (╯□╰)…

console.log(url.resolve('/a1/a2','b2')); // /a1/b2
console.log(url.resolve('/a1/a2','../b2')); // /b2

console.log(url.resolve('/a1/a2/a3','/b2')); // /b2
console.log(url.resolve('/a1/a2/a3','./b2')); // /a1/a2/b2
console.log(url.resolve('/a1/a2/a3','../b2')); // /a1/b2

console.log(url.resolve('http://www.baidu.com','/one'));
// http://www.baidu.com/one
console.log(url.resolve('http://www.baidu.com','two'));
// http://www.baidu.com/two
console.log(url.resolve('http://www.baidu.com/a1/a2','two'));
// http://www.baidu.com/a1/two
console.log(url.resolve('http://www.baidu.com/a1/a2','../two'));
// http://www.baidu.com/two
console.log(url.resolve('http://www.baidu.com/a1/a2','/two'));
// http://www.baidu.com/two

Query String

const qs = require('querystring');

qs.parse(str[, sep[, eq[, options]]])

/* 把查询字符串转为对象的键值对形式  对象不继承Object 不具有toSring()等方法*/
var str = 'k1=v1&k2=v2&k3=v3&k3=v4';
console.log( qs.parse(str));
// { k1: 'v1', k2: 'v2', k3: [ 'v3', 'v4' ] }
console.log(qs.parse(str).k1);  // v1
console.log(qs.parse(str).k3[1]);  // v4

qs.stringify(obj[, sep[, eq[, options]]])


var strObj={
  k1:'v1',
  k2:'v2',
  age:18,
  book:['book1', 'book2']
};
console.log( qs.stringify(strObj) );
// k1=v1&k2=v2&age=18&book=book1&book=book2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值