const os = require("os"); console.log(os); console.log(os.EOL); //换行符 console.log(os.cpus().length); //内核 8核 console.log(os.freemem()/2**30); //剩余内存 多少kb console.log(os.homedir()); //用户目录 C:\Users\Lenovo console.log(os.hostname()); //主机名 DESKTOP-QILT1G7 console.log(os.tmpdir()); //文件目录 C:\Users\Lenovo\AppData\Local\Temp
const path = require("path"); console.log(path.basename("a/b/c.html")) //文件名 console.log(path.delimiter) //操作系统路径分隔符 一个路径与另一个路径 console.log(__dirname); //模块路径 console.log(path.dirname(__filename)) //模块路径 console.log(path.extname(__filename)) //后缀名 console.log(path.join(__filename)); //加入路径 console.log(path.normalize('eqweq/eqwe/eqweq/eqw')) //转换成正常路径 console.log(path.relative("a/b/c/c.html","a/b/d/d.html")); //将后面的路径转换为前面路径的相对路径 ../../d/d.html console.log(path.resolve(__dirname,"./OS.js")); //路径拼接
path
<string>ext
<string> 可选的文件扩展名。path.basename()
方法会返回 path
的最后一部分,类似于 Unix 的 basename
命令。 尾部的目录分隔符会被忽略,参见 path.sep
。
path.basename('/目录1/目录2/文件.html'); // 返回: '文件.html' path.basename('/目录1/目录2/文件.html', '.html'); // 返回: '文件'
path
<string>path.dirname()
方法会返回 path
的目录名,类似于 Unix 的 dirname
命令。 尾部的目录分隔符会被忽略,参见 path.sep
。
path.dirname('/目录1/目录2/目录3'); // 返回: '/目录1/目录2'
提供平台特定的路径定界符:
;
用于 Windows:
用于 POSIX例如,在 POSIX 上:
console.log(process.env.PATH); // 打印: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin' process.env.PATH.split(path.delimiter); // 返回: ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']
在 Windows 上:
console.log(process.env.PATH); // 打印: 'C:\Windows\system32;C:\Windows;C:\Program Files\node\' process.env.PATH.split(path.delimiter); // 返回: ['C:\\Windows\\system32', 'C:\\Windows', 'C:\\Program Files\\node\\']
const url = require('url');
使用 WHATWG 的 API 解析 URL 字符串:转为url对象
const myURL =new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');
使用传统的 API 解析 URL 字符串:转为url对象
const url = require('url'); const myURL =url.parse('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');
url对象
URL { href: 'https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash', origin: 'https://sub.host.com:8080', protocol: 'https:', username: 'user', password: 'pass', host: 'sub.host.com:8080', hostname: 'sub.host.com', port: '8080', pathname: '/p/a/t/h', search: '?query=string', searchParams: URLSearchParams { 'query' => 'string' }, hash: '#hash' }
node中的回调模式
(err,data)=>{} err错误,data回调数据
const util = require("util"); async function delay(duration = 1000) { return new Promise(resolve => { setTimeout(() => { resolve(duration); }, duration); }); } const delayCallback = util.callbackify(delay); //将promise转为回调 delayCallback(1500, (err, d) => { console.log(d); });
function delayCallBack(duration, callback) { setTimeout(() => { callback(null, duration); }, duration); } const delay = util.promisify(delayCallBack);//将回调转为promise (async () => { const r = await delay(500); console.log(r); })();
const obj1 = { a: 1, b: { c: 3, d: { e: 5 } } }; const obj2 = { a: 1, b: { c: 3, d: { e: 5, g: 6 } } }; const obj3 = { a: 1, b: { c: 3, d: { e: 5 } } }; console.log(util.isDeepStrictEqual(obj1, obj2)); //false console.log(util.isDeepStrictEqual(obj1, obj3)); //true