一、path
:提供用于处理文件路径和目录路径的实用工具
引入路径模块const path = require('path');
-
path.parse(path)
这是一个常用的方法,将路径解析成json格式
比如:
path.parse('/home/user/dir/file.txt');
// 返回:
// { root: '/',
// dir: '/home/user/dir',
// base: 'file.txt',
// ext: '.txt',
// name: 'file' }
- 与以上相反的操作就是
path.format(pathObject)
,将json组合成一个path
二、fs
:文件系统
引入文件系统:const fs = require('fs');
所有的方法都有异步和同步的形式。异步最后一个参数都是一个回调函数。 回调函数的第一个参数都是err
,代表方法操作是否成功。 如果操作成功完成,则第一个参数会是 null 或 undefined。
-
fs.readFile
:读文件
如果读取文件成功,err为null
fs.readFile('./hello.js',(err,data) => {
if(err) throw err;
console.log(data);
});
指定字符编码:fs.readFile('/etc/passwd', 'utf8', callback);
写入文件:fs.write(fd, string[, position[, encoding]], callback)
删除文件:fs.unlink(path, (err) => { ... })
创建文件夹:fs.mkdir(path[, options], (err) => { ... })
文件夹重命名:fs.rename(oldPath, newPath, (err) => { ... })
三、querystring
模块提供用于解析和格式化 URL 查询字符串的实用工具
引入const querystring = require('querystring');
-- sep
<string> 用于在查询字符串中分隔键值对的子字符串。默认值: '&'
。
-- eq
<string> 用于在查询字符串中分隔键和值的子字符串。默认值: '='
。
-
querystring.parse(str[, sep[, eq[, options]]])
举个栗子:foo=bar&abc=xyz&abc=123
解析之后
querystring.parse("foo=bar&abc=xyz&abc=123");
...解析后...
{
foo: 'bar',
abc: ['xyz', '123']
}
...也可以这样写...
querystring.parse("foo=bar&abc=xyz&abc=123", "&", "=");
-
querystring.stringify(obj[, sep[, eq[, options]]])
就是相反的操作
querystring.stringify({
foo: 'bar',
abc: ['xyz', '123']
});
...解析后...
"foo=bar&abc=xyz&abc=123"
...也可以这样写...
querystring.stringify({
foo: 'bar',
abc: ['xyz', '123']
}, "&", "=");
四、url
没有红色字体代表在最新版v12.11.1node中不推荐使用
-
url.format(URL[, options])
虽然 URL 对象的 toString() 方法和 href 属性都可以返回 URL 的序列化的字符串。 然而,两者都不可以被自定义。 而 url.format(URL[, options]) 方法允许输出的基本自定义
@params 参数
-- auth
<boolean> 如果序列化的 URL 字符串应该包含用户名和密码则为 true
,否则为 false
。默认值: true
。
-- fragment
<boolean> 如果序列化的 URL 字符串应该包含分段则为 true
,否则为 false
。默认值: true
。
-- search
<boolean> 如果序列化的 URL 字符串应该包含搜索查询则为 true
,否则为 false
。默认值: true
。
-- unicode
<boolean> 如果出现在 URL 字符串主机元素里的 Unicode 字符应该被直接编码而不是使用 Punycode 编码则为 true
。默认值: false
。
const myURL = new URL('https://a:b@測試?abc#foo');
console.log(myURL.href);
// 打印 https://a:b@xn--g6w251d/?abc#foo
console.log(myURL.toString());
// 打印 https://a:b@xn--g6w251d/?abc#foo
console.log(url.format(myURL, { fragment: false, unicode: true, auth: false }));
// 打印 'https://測試/?abc'
- url.resolve(from, to)
from: 解析时对应的基本的url
to:要解析的超链接url
const url = require('url');
url.resolve('/one/two/three', 'four'); // '/one/two/four'
url.resolve('http://example.com/', '/one'); // 'http://example.com/one'
url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'
- url.path(URL[, options])用来解析一个url地址,将地址解析为一个对象,v12.11.1推荐使用以下方法
const myURL = new URL('https://example.org/foo#bar');
console.log(myURL.hash); // 打印 #bar
myURL.host
myURL.hostname
myURL.href
myURL.originm
myURL.password
myURL.pathname
myURL.port
myURL.protocol
myURL.search
myURL.username
具体参数可在node文档查找
网友评论