3 path核心模块
const path = require('path')
// require('./static/test/test')
{
/*
总结:
__dirname: 获得当前执行文件所在目录的完整目录名
__filename: 获得当前执行文件的带有完整绝对路径的文件名
process.cwd():获得当前执行node命令时候的文件夹目录名
./: 不使用require时候,./与process.cwd()一样,使用require时候,与__dirname一样
只有在 require() 时才使用相对路径(./, ../) 的写法,其他地方一律使用绝对路径,如下: // 当前目录下
path.dirname(__filename) + '/path.js';
// 相邻目录下
path.resolve(__dirname, '../regx/regx.js');
*/
}
{
//获取路径
console.log('获取路径');
let res = path.dirname('./static/test/test.js') // ./static/test
console.log("res", res)
}
{
//路径拼接
console.log('------------------------------------');
console.log(__dirname); //当前文件的父目录路径 D:\code1\nodeDemo\nodeLearn console.log(path.join(__dirname, '/img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.join(__dirname, 'img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.join(__dirname, './img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.join(__dirname, '../img/1.png')) // D:\code1\nodeDemo\img\1.png console.log('########################################'); console.log(path.resolve(__dirname, '/img/1.png')) // D:\img\1.png
console.log(path.resolve(__dirname, 'img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.resolve(__dirname, './img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.resolve(__dirname, '../img/1.png'))// D:\code1\nodeDemo\img\1.png }
{
//获取文件名path.basename(filepath)
let path1 = path.basename('./static/test/test.js') // test.js
let path2 = path.basename('/static/1.txt') // 1.txt
// 第二个参数去掉结果后缀
let path3 = path.basename('./static/test/test.js', '.js') // test 本来是test.js --去掉.js -->test
let path4 = path.basename('./static/test/test.js', '.css') // test.js 去不掉就原样输出
} {
//获取后缀 :path.extname(filepath)
let ext = path.extname('./static/1.txt') //.txt
let ext1 = path.extname('./static/test/test.js') // .js
let ext2 = path.extname('static/test/test.js') // .js
}
{
//提供平台特定的路径片段分隔符: Windows 分隔符上是 \。
let res = './foo/bar/baz'.split(path.sep); //[ './foo/bar/baz' ]
let res1 = 'foo\\bar\\baz'.split(path.sep); //[ 'foo', 'bar', 'baz' ] }
3 path核心模块的更多相关文章
- 核心模块Path
核心模块Path 作用:用于帮助程序员来操作硬盘上的路径. 核心模块注意点:当引用核心模块的时候直接require('模块名'),不需要加任何路径或者后缀. Path中的常用API: dirname( ...
- Nodejs核心模块
(1)全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性. 在nodejs中能够直接访问到的对象通常都是global ...
- node八-核心模块、包
学会查API,远比会几个API更重要. 核心模块意义 -如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件.访问网络 -Node的用处在于它本身还提供可 ...
- node.js中path路径模块的使用
path模块是node.js中处理路径的核心模块.可以很方便的处理关于文件路径的问题. join() 将多个参数值合并成一个路径 const path = require('path'); conso ...
- Hadoop2源码分析-HDFS核心模块分析
1.概述 这篇博客接着<Hadoop2源码分析-RPC机制初识>来讲述,前面我们对MapReduce.序列化.RPC进行了分析和探索,对Hadoop V2的这些模块都有了大致的了解,通过对 ...
- [转]ASP.NET 核心模块配置参考
本文转自:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore ...
- 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令
1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ...
- Linux学习-核心与核心模块
谈完了整个开机的流程,您应该会知道,在整个开机的过程当中,是否能够成功的驱动我们主机的硬 件配备, 是核心 (kernel) 的工作!而核心一般都是压缩文件,因此在使用核心之前,就得要将他解 压缩后, ...
- 12-《Node.js开发指南》-核心模块
全局对象 Node.js中的全局对象是global 所有全局变量(除了global本身以外)都是global对象的属性 最根本的作用为全局变量的宿主 全局变量 //满足以下条件的是全局变量 a.在最外 ...
随机推荐
- Java 多态 接口继承等学习笔记
Super关键字 1.子类可以调用父类声明的构造方法 : 语法:在子类的构造方法中使用super关键字 super(参数列表) 2.操作被隐藏的成员变量(子类的成员变量和父类的成员变量重名的说法)和 ...
- SPP、ASPP、RFB、CBAM
SPP:ASPP:将pooling 改为了 空洞卷积RFB:不同大小的卷积核和空洞卷积进行组合,认为大的卷积应该有更大的感受野. CBAM:空间和通道的注意力机制 SPP: Spatial Pyram ...
- 2020重新出发,JAVA学前了解,Windosws常用快捷键
前言:windows 常用快捷键 标准计算机键盘共104键,除了26个字母键.符号键.数字键外,剩下的都是一些功能键: 键盘功能键 常用功能键:Esc.Tab.Caps Lock.Shift.Ctrl ...
- C# ASP 上传/下载文件
1. 上传文件前台页面 <div style="padding-left:20px;"> <asp:FileUpload ID="FileUpload ...
- 2020-06-19:多线程消费kafka的时候,开发、测试环境都能每秒10w+,但是正式环境只能1w/s,正式环境不能重启,看怎么调试?
福哥答案2020-06-19: 答案来自群成员:基准测试. 观察 网络和磁盘的读写,实时与历史曲线,观察文件句柄/内存的使用情况.观察系统patch 基础库/运行时状态.
- C#LeetCode刷题之#326-3的幂(Power of Three)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3867 访问. 给定一个整数,写一个函数来判断它是否是 3 的幂次 ...
- Css 图片自适应
设置 CSS .container{ overflow:auto; } img{ width:100%; height:auto; overflow:hidden; } 设置 template < ...
- 对于python装饰器结合递归的进一步理解
对于python装饰器结合递归的进一步理解 代码如下: import functools def memoize(fn): print('start memoize') known = dict() ...
- 为什么 max() 应该写成 b < a ? a : b 呢?
在 < C++ Templates 2nd Edition >Chapter 1 中,作者将 max() 模板定义如下: template <typename T> T max ...
- openvswitch常用bond相关命令
1.列出bondovs-appctl bond/list[root@test~]# ovs-appctl bond/listbond type recircID slavesbond1 balance ...