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核心模块的更多相关文章

  1. 核心模块Path

    核心模块Path 作用:用于帮助程序员来操作硬盘上的路径. 核心模块注意点:当引用核心模块的时候直接require('模块名'),不需要加任何路径或者后缀. Path中的常用API: dirname( ...

  2. Nodejs核心模块

    (1)全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性. 在nodejs中能够直接访问到的对象通常都是global ...

  3. node八-核心模块、包

    学会查API,远比会几个API更重要. 核心模块意义 -如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件.访问网络 -Node的用处在于它本身还提供可 ...

  4. node.js中path路径模块的使用

    path模块是node.js中处理路径的核心模块.可以很方便的处理关于文件路径的问题. join() 将多个参数值合并成一个路径 const path = require('path'); conso ...

  5. Hadoop2源码分析-HDFS核心模块分析

    1.概述 这篇博客接着<Hadoop2源码分析-RPC机制初识>来讲述,前面我们对MapReduce.序列化.RPC进行了分析和探索,对Hadoop V2的这些模块都有了大致的了解,通过对 ...

  6. [转]ASP.NET 核心模块配置参考

    本文转自:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore ...

  7. 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令

    1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ...

  8. Linux学习-核心与核心模块

    谈完了整个开机的流程,您应该会知道,在整个开机的过程当中,是否能够成功的驱动我们主机的硬 件配备, 是核心 (kernel) 的工作!而核心一般都是压缩文件,因此在使用核心之前,就得要将他解 压缩后, ...

  9. 12-《Node.js开发指南》-核心模块

    全局对象 Node.js中的全局对象是global 所有全局变量(除了global本身以外)都是global对象的属性 最根本的作用为全局变量的宿主 全局变量 //满足以下条件的是全局变量 a.在最外 ...

随机推荐

  1. PHP7 生产环境队列 Beanstalkd 正确使用姿势

    应用场景 为什么要用呢,有什么好处?这应该放在最开头说,一件东西你只有了解它是干什么的,适合干什么,才能更好的与自己的项目相结合,用到哪里学到哪里,学了不用等于不会,我们平时就应该多考虑一些这样的问题 ...

  2. java动态代理——代理方法的假设和验证及Proxy源码分析五

    前文地址 https://www.cnblogs.com/tera/p/13419025.html 本系列文章主要是博主在学习spring aop的过程中了解到其使用了java动态代理,本着究根问底的 ...

  3. 7、Prototype 原型模式 通过复制创造实例 创造型模式

    2020-07-19 发哥讲 发哥讲 其实上一节的末尾讲到如何去生成对象,其中有一个关于clone的,这其实就是Prototype原型模式. 通过克隆(拷贝)的方式生成对象 1.了解Prototype ...

  4. 微信公众号里放XLS链接

    微信公众号里放XLS链接 我们都知道创建一个微信公众号在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件,如:xls,word等 ...

  5. Linux安装配置PHPmyadmin

    进官网下载zip安装包 wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.zip 安装 ...

  6. cudnn加速计算

    cudnn加速运算 torch.backends.cudnn.enabled = True torch.backends.cudnn.benchmark = True 第一句话是说,使用的是非确定性算 ...

  7. ES读写流程

    简述ES的写流程,GET读取数据流程和Search搜索数据流程. ES的读写流程主要是协调节点,主分片节点.副分片节点间的相互协调. ES的读取分为GET和Search两种操作.GET根据文档id从正 ...

  8. Mybatis-07-多对一和一对多处理

    多对一处理 如, 多个学生,对应一个老师 多个学生关联一个老师(多对一) 一个老师有很多学生(一对多) SQL: create table `teacher`( `id` int(10) not nu ...

  9. iNeuOS工业互联平台,WEB组态(iNeuView)集成图报组件,满足实时数据图形化展示的需求

    目       录 1.      概述... 1 2.      平台演示... 2 3.      应用过程... 3 4.      实时数据展示效果... 5 1.   概述 市场和开源社区有 ...

  10. 朋友国企干了5年java,居然不知道Dubbo是做什么呢?我真信了

    点赞再看,养成习惯,微信搜一搜[三太子敖丙]关注这个喜欢写情怀的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系 ...